mirror_ubuntu-kernels/drivers/net/ethernet/intel/ixgbe
Jesse Brandeburg 3fe1d0a48d ixgbe: XDP: fix checker warning from rcu pointer
The ixgbe driver uses an older style failure mode when initializing the
XDP program and the queues. It causes some warnings when running C=2
checking builds (and it's the last one in the ethernet/intel tree).

$ make W=1 C=2 M=`pwd`/drivers/net/ethernet/intel modules
.../ixgbe_main.c:10301:25: error: incompatible types in comparison expression (different address spaces):
.../ixgbe_main.c:10301:25:    struct bpf_prog [noderef] __rcu *
.../ixgbe_main.c:10301:25:    struct bpf_prog *

Fix the problem by removing the line that tried to re-xchg "the old_prog
pointer" if there was an error, to make this driver act like the other
drivers which return the error code without "pointer restoration."

Also, update the "copy the pointer" logic to use WRITE_ONCE as many/all
the other drivers do, which required making a change in two separate
functions that write the xdp_prog variable in the ring.

The code here was modeled after the code in i40e/i40e_xdp_setup().

NOTE: Compile-tested only.

CC: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
CC: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-01-13 09:42:15 -08:00
..
ixgbe_82598.c ixgbe: Fix typos in comments 2022-06-09 10:05:31 -07:00
ixgbe_82599.c ixgbe: use checker safe conversions 2021-05-26 09:11:41 -07:00
ixgbe_common.c ixgbe: Fix typos in comments 2022-06-09 10:05:31 -07:00
ixgbe_common.h
ixgbe_dcb_82598.c
ixgbe_dcb_82598.h
ixgbe_dcb_82599.c
ixgbe_dcb_82599.h
ixgbe_dcb_nl.c intel: remove unused macros 2022-06-30 09:40:55 -07:00
ixgbe_dcb.c
ixgbe_dcb.h
ixgbe_debugfs.c
ixgbe_ethtool.c ixgbe: Remove local variable 2022-11-04 11:09:57 -07:00
ixgbe_fcoe.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
ixgbe_fcoe.h
ixgbe_ipsec.c xfrm: allow state packet offload mode 2022-12-05 10:32:44 +01:00
ixgbe_ipsec.h ixgbe: propagate XFRM offload state direction instead of flags 2022-05-06 08:32:52 +02:00
ixgbe_lib.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
ixgbe_main.c ixgbe: XDP: fix checker warning from rcu pointer 2023-01-13 09:42:15 -08:00
ixgbe_mbx.c
ixgbe_mbx.h ixgbe: add the ability for the PF to disable VF link state 2022-03-08 07:41:18 -08:00
ixgbe_model.h
ixgbe_phy.c ixgbe: fix pci device refcount leak 2023-01-10 11:38:58 -08:00
ixgbe_phy.h
ixgbe_ptp.c ixgbe: Remove unneeded semicolon 2022-11-04 11:09:57 -07:00
ixgbe_sriov.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-21 13:03:39 -07:00
ixgbe_sriov.h ixgbe: add the ability for the PF to disable VF link state 2022-03-08 07:41:18 -08:00
ixgbe_sysfs.c
ixgbe_txrx_common.h ixgbe, xsk: Terminate Rx side of NAPI when XSK Rx queue gets full 2022-04-15 21:10:45 +02:00
ixgbe_type.h ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_x540.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
ixgbe_x540.h
ixgbe_x550.c ixgbe: Manual AN-37 for troublesome link partners for X550 SFI 2022-08-18 14:53:39 -07:00
ixgbe_xsk.c ixgbe, xsk: Get rid of redundant 'fallthrough' 2022-04-21 16:31:10 +02:00
ixgbe.h ixgbe: change MAX_RXD/MAX_TXD based on adapter type 2022-11-04 11:09:57 -07:00
Makefile