linux/drivers/net/ethernet/intel/i40e
Karen Sornek 6533e558c6 i40e: Fix reset path while removing the driver
Fix the crash in kernel while dereferencing the NULL pointer,
when the driver is unloaded and simultaneously the VSI rings
are being stopped.

The hardware requires 50msec in order to finish RX queues
disable. For this purpose the driver spins in mdelay function
for the operation to be completed.

For example changing number of queues which requires reset would
fail in the following call stack:

1) i40e_prep_for_reset
2) i40e_pf_quiesce_all_vsi
3) i40e_quiesce_vsi
4) i40e_vsi_close
5) i40e_down
6) i40e_vsi_stop_rings
7) i40e_vsi_control_rx -> disable requires the delay of 50msecs
8) continue back in i40e_down function where
   i40e_clean_tx_ring(vsi->tx_rings[i]) is going to crash

When the driver was spinning vsi_release called
i40e_vsi_free_arrays where the vsi->tx_rings resources
were freed and the pointer was set to NULL.

Fixes: 5b6d4a7f20 ("i40e: Fix crash during removing i40e driver")
Signed-off-by: Slawomir Laba <slawomirx.laba@intel.com>
Signed-off-by: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
Signed-off-by: Karen Sornek <karen.sornek@intel.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2022-01-31 14:15:07 -08:00
..
i40e_adminq_cmd.h i40e: Update FW API version 2022-01-07 09:04:21 -08:00
i40e_adminq.c i40e: Minimize amount of busy-waiting during AQ send 2022-01-07 09:04:21 -08:00
i40e_adminq.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_alloc.h
i40e_client.c RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw 2021-06-02 20:06:36 -03:00
i40e_common.c i40e: remove variables set but not used 2022-01-07 09:04:21 -08:00
i40e_dcb_nl.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_dcb.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_dcb.h i40e: Add hardware configuration for software based DCB 2021-02-10 14:28:39 -08:00
i40e_ddp.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_debugfs.c i40e: fix unsigned stat widths 2022-01-20 10:25:41 -08:00
i40e_devids.h
i40e_diag.c
i40e_diag.h
i40e_ethtool.c ethtool: extend ringparam setting/getting API with rx_buf_len 2021-11-22 12:31:49 +00:00
i40e_hmc.c
i40e_hmc.h
i40e_lan_hmc.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_lan_hmc.h
i40e_main.c i40e: Fix reset path while removing the driver 2022-01-31 14:15:07 -08:00
i40e_nvm.c intel: clean up mismatched header comments 2021-03-23 11:34:02 -07:00
i40e_osdep.h
i40e_prototype.h i40e: Minimize amount of busy-waiting during AQ send 2022-01-07 09:04:21 -08:00
i40e_ptp.c net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX 2021-12-14 12:28:24 +00:00
i40e_register.h i40e: Fix for failed to init adminq while VF reset 2022-01-20 10:25:40 -08:00
i40e_status.h i40e: Remove non-inclusive language 2022-01-07 09:04:21 -08:00
i40e_trace.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx_common.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_txrx.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
i40e_txrx.h i40e: Fix queue-to-TC mapping on Tx 2021-07-23 07:44:48 -07:00
i40e_type.h i40e: clean up packet type lookup table 2021-06-18 09:04:44 -07:00
i40e_virtchnl_pf.c i40e: Fix for failed to init adminq while VF reset 2022-01-20 10:25:40 -08:00
i40e_virtchnl_pf.h i40e: Fix for failed to init adminq while VF reset 2022-01-20 10:25:40 -08:00
i40e_xsk.c bpf: Let bpf_warn_invalid_xdp_action() report more info 2021-12-13 22:28:27 +01:00
i40e_xsk.h xsk: Wipe out dead zero_copy_allocator declarations 2021-12-14 00:24:24 +01:00
i40e.h i40e: Fix reset path while removing the driver 2022-01-31 14:15:07 -08:00
Makefile