mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-22 00:39:33 -05:00
idpf: fix transaction timeouts on reset
Restore the call to idpf_vc_xn_shutdown() at the beginning of
idpf_vc_core_deinit() provided the function is not called on remove.
In the reset path the mailbox is destroyed, leading to all transactions
timing out.
Fixes: 09d0fb5cb3 ("idpf: deinit virtchnl transaction manager after vport and vectors")
Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
committed by
Tony Nguyen
parent
396f016567
commit
137da75ba7
@@ -3077,12 +3077,21 @@ int idpf_vc_core_init(struct idpf_adapter *adapter)
|
||||
*/
|
||||
void idpf_vc_core_deinit(struct idpf_adapter *adapter)
|
||||
{
|
||||
bool remove_in_prog;
|
||||
|
||||
if (!test_bit(IDPF_VC_CORE_INIT, adapter->flags))
|
||||
return;
|
||||
|
||||
/* Avoid transaction timeouts when called during reset */
|
||||
remove_in_prog = test_bit(IDPF_REMOVE_IN_PROG, adapter->flags);
|
||||
if (!remove_in_prog)
|
||||
idpf_vc_xn_shutdown(adapter->vcxn_mngr);
|
||||
|
||||
idpf_deinit_task(adapter);
|
||||
idpf_intr_rel(adapter);
|
||||
idpf_vc_xn_shutdown(adapter->vcxn_mngr);
|
||||
|
||||
if (remove_in_prog)
|
||||
idpf_vc_xn_shutdown(adapter->vcxn_mngr);
|
||||
|
||||
cancel_delayed_work_sync(&adapter->serv_task);
|
||||
cancel_delayed_work_sync(&adapter->mbx_task);
|
||||
|
||||
Reference in New Issue
Block a user