i40e: Fix removing driver while bare-metal VFs pass traffic
stable inclusion from linux-4.19.162 commit 71d97c0f61e198022e599520cf3896504e74d7cc -------------------------------- [ Upstream commit 2980cbd4 ] Prevent VFs from resetting when PF driver is being unloaded: - introduce new pf state: __I40E_VF_RESETS_DISABLED; - check if pf state has __I40E_VF_RESETS_DISABLED state set, if so, disable any further VFLR event notifications; - when i40e_remove (rmmod i40e) is called, disable any resets on the VFs; Previously if there were bare-metal VFs passing traffic and PF driver was removed, there was a possibility of VFs triggering a Tx timeout right before iavf_remove. This was causing iavf_close to not be called because there is a check in the beginning of iavf_remove that bails out early if adapter->state < IAVF_DOWN_PENDING. This makes it so some resources do not get cleaned up. Fixes: 6a9ddb36 ("i40e: disable IOV before freeing resources") Signed-off-by:Slawomir Laba <slawomirx.laba@intel.com> Signed-off-by:
Brett Creeley <brett.creeley@intel.com> Signed-off-by:
Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com> Tested-by:
Konrad Jankowski <konrad0.jankowski@intel.com> Signed-off-by:
Tony Nguyen <anthony.l.nguyen@intel.com> Link: https://lore.kernel.org/r/20201120180640.3654474-1-anthony.l.nguyen@intel.com Signed-off-by:
Jakub Kicinski <kuba@kernel.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> Conflicts: drivers/net/ethernet/intel/i40e/i40e.h [yyl: adjust context] Signed-off-by:
Yang Yingliang <yangyingliang@huawei.com> Signed-off-by:
Aichun Li <liaichun@huawei.com> reviewed-by:
wangxiaopeng <wangxiaopeng7@huawei.com> Signed-off-by:
Yang Yingliang <yangyingliang@huawei.com> Signed-off-by:
Cheng Jian <cj.chengjian@huawei.com>
Loading
Please sign in to comment