linux/drivers/net/ethernet/intel/igc
Toke Høiland-Jørgensen 49589b23d5 intel: Remove rcu_read_lock() around XDP program invocation
The Intel drivers all have rcu_read_lock()/rcu_read_unlock() pairs around
XDP program invocations. However, the actual lifetime of the objects
referred by the XDP program invocation is longer, all the way through to
the call to xdp_do_flush(), making the scope of the rcu_read_lock() too
small. This turns out to be harmless because it all happens in a single
NAPI poll cycle (and thus under local_bh_disable()), but it makes the
rcu_read_lock() misleading.

Rather than extend the scope of the rcu_read_lock(), just get rid of it
entirely. With the addition of RCU annotations to the XDP_REDIRECT map
types that take bh execution into account, lockdep even understands this to
be safe, so there's really no reason to keep it around.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Jesper Dangaard Brouer <brouer@redhat.com> # i40e
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: intel-wired-lan@lists.osuosl.org
Link: https://lore.kernel.org/bpf/20210624160609.292325-12-toke@redhat.com
2021-06-24 19:44:34 +02:00
..
igc.h igc: Enable HW VLAN Insertion and HW VLAN Stripping 2021-06-04 09:14:39 -07:00
igc_base.c
igc_base.h igc: Enable TX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
igc_defines.h igc: Enable HW VLAN Insertion and HW VLAN Stripping 2021-06-04 09:14:39 -07:00
igc_diag.c
igc_diag.h
igc_dump.c igb/igc: use strongly typed pointer 2021-05-26 09:11:41 -07:00
igc_ethtool.c igc: Update driver to use ethtool_sprintf 2021-06-04 09:14:16 -07:00
igc_hw.h igc: Clean up nvm_operations structure 2021-02-03 15:20:32 -08:00
igc_i225.c igc: Fix overwrites return value 2021-04-16 13:15:45 -07:00
igc_i225.h
igc_mac.c igc: check return value of ret_val in igc_config_fc_after_link_up 2021-02-01 10:04:43 -08:00
igc_mac.h
igc_main.c intel: Remove rcu_read_lock() around XDP program invocation 2021-06-24 19:44:34 +02:00
igc_nvm.c
igc_nvm.h
igc_phy.c igc: Expose the gPHY firmware version 2021-02-03 15:20:32 -08:00
igc_phy.h igc: Expose the gPHY firmware version 2021-02-03 15:20:32 -08:00
igc_ptp.c igc: enable auxiliary PHC functions for the i225 2021-04-16 13:15:45 -07:00
igc_regs.h igc: Enable HW VLAN Insertion and HW VLAN Stripping 2021-06-04 09:14:39 -07:00
igc_tsn.c
igc_tsn.h
igc_xdp.c igc: Enable TX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
igc_xdp.h igc: Enable RX via AF_XDP zero-copy 2021-05-20 10:21:42 -07:00
Makefile igc: Add initial XDP support 2021-03-29 09:09:53 -07:00