[Bug 281460] if_ovpn doesn't work with crypto.ko

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 12 Sep 2024 14:14:34 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281460

            Bug ID: 281460
           Summary: if_ovpn doesn't work with crypto.ko
           Product: Base System
           Version: 14.1-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: freebsd@oldach.net

amd64 with stripped-down kernel (kind of MINIMAL). crypto.ko gets dynamically
loaded. In that scenario, loading if_ovpn fails though:

root@latitude / # kldload if_ovpn
kldload: an error occurred while loading module if_ovpn. Please check dmesg(8)
for more details.
root@latitude / # dmesg -a | tail -2
link_elf_obj: symbol crypto_freesession undefined
linker_load_file: /boot/kernel/if_ovpn.ko - unsupported file type
root@latitude / #

I noticed that crypto_freesession is a *local* text symbol in crypto.ko.

root@latitude / # nm /boot/kernel/crypto.ko | fgrep crypto_freesession
0000000000000d60 t crypto_freesession
root@latitude / #

However, in a GENERIC kernel (with device crypto) it's a global text symbol:

root@latitude / # nm /boot/GENERIC/kernel | fgrep crypto_freesession
ffffffff805a0520 T crypto_freesession
root@latitude / #

Indeed if_ovpn kldloads nicely with linked-in crypto.

Is this intended behaviour?

-- 
You are receiving this mail because:
You are the assignee for the bug.