linux_dsm_epyc7002/drivers/net/ethernet/intel/i40e
Maxim Mikityanskiy b3873a5be7 net/i40e: Fix concurrency issues between config flow and XSK
Use synchronize_rcu to wait until the XSK wakeup function finishes
before destroying the resources it uses:

1. i40e_down already calls synchronize_rcu. On i40e_down either
__I40E_VSI_DOWN or __I40E_CONFIG_BUSY is set. Check the latter in
i40e_xsk_wakeup (the former is already checked there).

2. After switching the XDP program, call synchronize_rcu to let
i40e_xsk_wakeup exit before the XDP program is freed.

3. Changing the number of channels brings the interface down (see
i40e_prep_for_reset and i40e_pf_quiesce_all_vsi).

4. Disabling UMEM sets __I40E_CONFIG_BUSY, too.

Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Signed-off-by: Björn Töpel <bjorn.topel@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20191217162023.16011-4-maximmi@mellanox.com
2019-12-19 16:20:49 +01:00
..
i40e_adminq_cmd.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-09 11:04:37 -08:00
i40e_adminq.c i40e: Extract detection of HW flags into a function 2019-10-25 13:38:19 -07:00
i40e_adminq.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_alloc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_client.c i40e: Use struct_size() in kzalloc() 2019-05-04 17:34:43 -07:00
i40e_client.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_common.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-09 11:04:37 -08:00
i40e_dcb_nl.c i40e/i40evf: cleanup incorrect function doxygen comments 2018-04-30 09:09:04 -07:00
i40e_dcb.c i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_dcb.h i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_ddp.c i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00
i40e_debugfs.c i40e: Remove EMPR traces from debugfs facility 2019-09-09 11:36:43 -07:00
i40e_devids.h i40e: Fix LED blinking flow for X710T*L devices 2019-10-25 13:38:19 -07:00
i40e_diag.c net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_diag.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_ethtool.c i40e: allow ethtool to report SW and FW versions in recovery mode 2019-10-25 13:38:19 -07:00
i40e_hmc.c i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_lan_hmc.c i40e: fix hw_dbg usage in i40e_hmc_get_object_va 2019-09-09 10:18:18 -07:00
i40e_lan_hmc.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_main.c net/i40e: Fix concurrency issues between config flow and XSK 2019-12-19 16:20:49 +01:00
i40e_nvm.c i40e: Fix for persistent lldp support 2019-10-25 13:38:19 -07:00
i40e_osdep.h i40e: Implement debug macro hw_dbg using dev_dbg 2019-09-09 11:22:20 -07:00
i40e_prototype.h i40e: Extend PHY access with page change flag 2019-10-25 13:38:19 -07:00
i40e_ptp.c i40e: use ktime_get_real_ts64 instead of ktime_to_timespec64 2019-09-11 09:10:45 -07:00
i40e_register.h i40e: check_recovery_mode had wrong if statement 2019-08-22 13:24:13 -07:00
i40e_status.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_trace.h net: intel: Cleanup the copyright/license headers 2018-04-27 14:00:04 -04:00
i40e_txrx_common.h i40e: DRY rx_ptype handling code 2018-12-12 15:46:02 -08:00
i40e_txrx.c i40e: Add UDP segmentation offload support 2019-10-29 21:11:49 -07:00
i40e_txrx.h net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
i40e_type.h i40e: Extend PHY access with page change flag 2019-10-25 13:38:19 -07:00
i40e_virtchnl_pf.c i40e: implement VF stats NDO 2019-11-04 13:19:49 -08:00
i40e_virtchnl_pf.h i40e: implement VF stats NDO 2019-11-04 13:19:49 -08:00
i40e_xsk.c net/i40e: Fix concurrency issues between config flow and XSK 2019-12-19 16:20:49 +01:00
i40e_xsk.h xsk: replace ndo_xsk_async_xmit with ndo_xsk_wakeup 2019-08-17 23:07:31 +02:00
i40e.h net/i40e: Fix concurrency issues between config flow and XSK 2019-12-19 16:20:49 +01:00
Makefile i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00