[Bug 263297] [netinet] [742e721] Changes in udp_tun_func_t() breaks if_wg from net/wireguard-kmod

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 15 Apr 2022 16:54:02 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263297

            Bug ID: 263297
           Summary: [netinet] [742e721] Changes in udp_tun_func_t() breaks
                    if_wg from net/wireguard-kmod
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: rhurlin@FreeBSD.org

On my 14.0-CURRENT amd64 box, it seems that since the commit of base #742e721
[1] ("allow udp_tun_func_t() to indicate it did not eat the packet"), the
net/wireguard-kmod port build has stopped working:


[..snip..]
===>  Building for wireguard-kmod-0.0.20211105
machine -> /usr/src/sys/amd64/include
x86 -> /usr/src/sys/x86/include
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/net/ifdi_if.m -h
touch opt_global.h
Warning: Object directory not changed from original
/usr/obj/usr/src/amd64.amd64/sys/RHURLIN/usr/ports/net/wireguard-kmod/work/wireguard-freebsd-0.0.20211105/src
cc  -O2 -pipe -fno-strict-aliasing -include compat.h  -Werror -D_KERNEL
-DKLD_MODULE -nostdinc   -include
/usr/obj/usr/src/amd64.amd64/sys/RHURLIN/usr/ports/net/wireguard-kmod/work/wireguard-freebsd-0.0.20211105/src/opt_global.h
-I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common 
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
-fdebug-prefix-map=./machine=/usr/src/sys/amd64/include
-fdebug-prefix-map=./x86=/usr/src/sys/x86/include     -MD  -MF.depend.if_wg.o
-MTif_wg.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float 
-fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
-Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__
-Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas
-Wno-error=tautological-compare -Wno-error=empty-body
-Wno-error=parentheses-equality -Wno-error=unused-function
-Wno-error=pointer-sign -Wno-error=shift-negative-value
-Wno-address-of-packed-member -Wno-unused-but-set-variable
-Wno-format-zero-length   -mno-aes -mno-avx  -std=iso9899:1999 -c if_wg.c -o
if_wg.o
if_wg.c:711:37: error: incompatible function pointer types passing 'void
(struct mbuf *, int, struct inpcb *, const struct sockaddr *, void *)' to
parameter of type 'udp_tun_func_t' (aka '_Bool (*)(struct mbuf *, int, struct
inpcb *, const struct sockaddr *, void *)')
[-Werror,-Wincompatible-function-pointer-types]
        rc = udp_set_kernel_tunneling(so4, wg_input, NULL, sc);
                                           ^~~~~~~~
/usr/src/sys/netinet/udp_var.h:181:65: note: passing argument to parameter 'f'
here
int             udp_set_kernel_tunneling(struct socket *so, udp_tun_func_t f,
                                                                           ^
if_wg.c:722:37: error: incompatible function pointer types passing 'void
(struct mbuf *, int, struct inpcb *, const struct sockaddr *, void *)' to
parameter of type 'udp_tun_func_t' (aka '_Bool (*)(struct mbuf *, int, struct
inpcb *, const struct sockaddr *, void *)')
[-Werror,-Wincompatible-function-pointer-types]
        rc = udp_set_kernel_tunneling(so6, wg_input, NULL, sc);
                                           ^~~~~~~~
/usr/src/sys/netinet/udp_var.h:181:65: note: passing argument to parameter 'f'
here
int             udp_set_kernel_tunneling(struct socket *so, udp_tun_func_t f,
                                                                           ^
2 errors generated.
*** Error code 1


[1]
https://freshbsd.org/freebsd/src/commit/88162f7abd61206c98432f2c0de869a59be13854

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