[Bug 264809] net/intel-ixl-kmod: Driver is broken with netmap and FreeBSD-13.1

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 23 Jun 2022 18:33:57 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264809

--- Comment #2 from Santiago Martinez <sm@codenetworks.net> ---
this is with auto. which when loaded and interfaces come up, makes the kernel
to panic.
==>  Building for intel-ixl-kmod-1.12.2
--- objwarn ---
Warning: Object directory not changed from original
/usr/ports/net/intel-ixl-kmod/work/ixl-1.12.2/src
--- if_ixl.o ---
--- ixl_txrx.o ---
--- if_ixl.o ---
cc  -O2 -pipe -fno-strict-aliasing  -DSMP -DINET -DINET6 -DIXL_STANDALONE_BUILD
-DPCI_IOV -DIXL_IW  -D_KERNEL -DKLD_MODULE -nostdinc   -include
/usr/ports/net/intel-ixl-kmod/work/ixl-1.12.2/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_ixl.o
-MTif_ixl.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float 
-fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall
-Wredundant-decls -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-error=unused-but-set-variable -Wno-format-zero-length   -mno-aes -mno-avx 
-std=iso9899:1999 -c if_ixl.c -o if_ixl.o
--- ixl_txrx.o ---
cc  -O2 -pipe -fno-strict-aliasing  -DSMP -DINET -DINET6 -DIXL_STANDALONE_BUILD
-DPCI_IOV -DIXL_IW  -D_KERNEL -DKLD_MODULE -nostdinc   -include
/usr/ports/net/intel-ixl-kmod/work/ixl-1.12.2/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.ixl_txrx.o -MTixl_txrx.o -mcmodel=kernel -mno-red-zone -mno-mmx
-mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv
-fstack-protector -Wall -Wredundant-decls -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-error=unused-but-set-variable -Wno-format-zero-length   -mno-aes -mno-avx 
-std=iso9899:1999 -c ixl_txrx.c -o ixl_txrx.o
ixl_txrx.c:474:12: warning: incompatible pointer types initializing 'device_t'
(aka 'struct _device *') with an expression of type 'struct device *'
[-Wincompatible-pointer-types]
        device_t                dev = vsi->dev;
                                ^     ~~~~~~~~
--- if_ixl.o ---
if_ixl.c:355:11: warning: incompatible pointer types initializing 'device_t'
(aka 'struct _device *') with an expression of type 'struct device *'
[-Wincompatible-pointer-types]
        device_t dev = pf->dev;
                 ^     ~~~~~~~
if_ixl.c:366:22: warning: incompatible pointer types passing 'struct device *'
to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
        ixl_setup_interface(pf->dev, vsi);
                            ^~~~~~~
./ixl_pf.h:296:33: note: passing argument to parameter here
int     ixl_setup_interface(device_t, struct ixl_vsi *);
                                    ^
--- ixl_txrx.o ---
ixl_txrx.c:918:23: warning: variable 'tx_desc' set but not used
[-Wunused-but-set-variable]
        struct i40e_tx_desc     *tx_desc, *eop_desc;
                                 ^
ixl_txrx.c:918:33: warning: variable 'eop_desc' set but not used
[-Wunused-but-set-variable]
        struct i40e_tx_desc     *tx_desc, *eop_desc;
                                           ^
--- if_ixl.o ---
if_ixl.c:433:10: warning: incompatible pointer types assigning to 'struct
device *' from 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
        pf->dev = pf->osdep.dev = dev;
                ^ ~~~~~~~~~~~~~~~~~~~
--- ixl_txrx.o ---
ixl_txrx.c:1038:23: warning: variable 'tx_desc' set but not used
[-Wunused-but-set-variable]
        struct i40e_tx_desc     *tx_desc, *eop_desc;
                                 ^
ixl_txrx.c:1267:13: warning: incompatible pointer types initializing 'device_t'
(aka 'struct _device *') with an expression of type 'struct device *'
[-Wincompatible-pointer-types]
        device_t                dev = vsi->dev;
                                ^     ~~~~~~~~
--- if_ixl.o ---
if_ixl.c:876:11: warning: incompatible pointer types initializing 'device_t'
(aka 'struct _device *') with an expression of type 'struct device *'
[-Wincompatible-pointer-types]
        device_t dev = pf->dev;
                 ^     ~~~~~~~
--- ixl_txrx.o ---
ixl_txrx.c:2059:17: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
                device_printf(dev, "Invalid tx_ring_size value of %d set!\n",
                              ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2061:17: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
                device_printf(dev, "tx_ring_size must be between %d and %d, "
                              ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2064:17: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
                device_printf(dev, "Using default value of %d instead\n",
                              ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2073:17: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
                device_printf(dev, "Invalid rx_ring_size value of %d set!\n",
                              ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2075:17: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
                device_printf(dev, "rx_ring_size must be between %d and %d, "
                              ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2078:17: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
                device_printf(dev, "Using default value of %d instead\n",
                              ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2084:16: warning: incompatible pointer types passing 'struct device
*' to parameter of type 'device_t' (aka 'struct _device *')
[-Wincompatible-pointer-types]
        device_printf(dev, "using %d tx descriptors and %d rx descriptors\n",
                      ^~~
/usr/src/sys/sys/bus.h:608:28: note: passing argument to parameter 'dev' here
int     device_printf(device_t dev, const char *, ...) __printflike(2, 3);
                               ^
ixl_txrx.c:2107:11: warning: incompatible pointer types initializing 'device_t'
(aka 'struct _device *') with an expression of type 'struct device *'
[-Wincompatible-pointer-types]
        device_t dev = vsi->dev;
                 ^     ~~~~~~~~
--- if_ixl.o ---
4 warnings generated.
--- ixl_txrx.o ---
13 warnings generated.
--- if_ixl.ko ---
ld -m elf_x86_64_fbsd -d -warn-common --build-id=sha1 -T
/usr/src/sys/conf/ldscript.kmod.amd64 -r -d  -o if_ixl.ko if_ixl.o
ixl_pf_main.o ixl_pf_qmgr.o ixl_txrx.o ixl_pf_i2c.o i40e_osdep.o i40e_common.o
i40e_nvm.o i40e_adminq.o i40e_lan_hmc.o i40e_hmc.o i40e_dcb.o
freebsd_compat_common.o ixl_pf_iov.o ixl_iw.o
:> export_syms
awk -f /usr/src/sys/conf/kmod_syms.awk if_ixl.ko  export_syms | xargs -J%
objcopy % if_ixl.ko
objcopy --strip-debug if_ixl.ko
===>  Staging for intel-ixl-kmod-1.12.2
===>   Generating temporary packing list
install  -m 555 /usr/ports/net/intel-ixl-kmod/work/ixl-1.12.2/src/if_ixl.ko
/usr/ports/net/intel-ixl-kmod/work/stage/boot/modules/if_ixl_updated.ko
install  -m 444 /usr/ports/net/intel-ixl-kmod/work/ixl-1.12.2/src/ixl.4
/usr/ports/net/intel-ixl-kmod/work/stage/usr/local/man/man4/
/bin/ln /usr/ports/net/intel-ixl-kmod/work/stage/usr/local/man/man4/ixl.4
/usr/ports/net/intel-ixl-kmod/work/stage/usr/local/man/man4/if_ixl.4

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