ice: improve updating ice_{t,r}x_ring::xsk_pool
authorMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Fri, 26 Jul 2024 18:17:14 +0000 (20:17 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 29 Jul 2024 15:52:29 +0000 (08:52 -0700)
commitebc33a3f8d0aeddf19fd5827add24b82ae171829
treee8c1a5d320752997cc73df853be09098c04ef672
parent9da75a511c5558fa3da56759984fd1fa859186f0
ice: improve updating ice_{t,r}x_ring::xsk_pool

xsk_buff_pool pointers that ice ring structs hold are updated via
ndo_bpf that is executed in process context while it can be read by
remote CPU at the same time within NAPI poll. Use synchronize_net()
after pointer update and {READ,WRITE}_ONCE() when working with mentioned
pointer.

Fixes: 2d4238f55697 ("ice: Add support for AF_XDP")
Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice.h
drivers/net/ethernet/intel/ice/ice_base.c
drivers/net/ethernet/intel/ice/ice_main.c
drivers/net/ethernet/intel/ice/ice_txrx.c
drivers/net/ethernet/intel/ice/ice_xsk.c
drivers/net/ethernet/intel/ice/ice_xsk.h