RE: [Intel-wired-lan] [PATCH iwl-net] idpf: deinit virtchnl transaction manager after vport and vectors

From: Singh, Krishneil K
Date: Tue Sep 24 2024 - 19:12:51 EST


> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf Of
> Larysa Zaremba
> Sent: Wednesday, September 4, 2024 2:54 AM
> To: intel-wired-lan@xxxxxxxxxxxxxxxx; Nguyen, Anthony L
> <anthony.l.nguyen@xxxxxxxxx>
> Cc: Tantilov, Emil S <emil.s.tantilov@xxxxxxxxx>; Zaremba, Larysa
> <larysa.zaremba@xxxxxxxxx>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@xxxxxxxxx>; Hay, Joshua A <joshua.a.hay@xxxxxxxxx>;
> linux-kernel@xxxxxxxxxxxxxxx; Bagnucki, Igor <igor.bagnucki@xxxxxxxxx>;
> Lobakin, Aleksander <aleksander.lobakin@xxxxxxxxx>; Eric Dumazet
> <edumazet@xxxxxxxxxx>; Kubiak, Michal <michal.kubiak@xxxxxxxxx>; Alan
> Brady <alan.brady@xxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; Jakub Kicinski
> <kuba@xxxxxxxxxx>; Paolo Abeni <pabeni@xxxxxxxxxx>; David S. Miller
> <davem@xxxxxxxxxxxxx>
> Subject: [Intel-wired-lan] [PATCH iwl-net] idpf: deinit virtchnl transaction
> manager after vport and vectors
>
> When the device is removed, idpf is supposed to make certain virtchnl
> requests e.g. VIRTCHNL2_OP_DEALLOC_VECTORS and
> VIRTCHNL2_OP_DESTROY_VPORT.
>
> However, this does not happen due to the referenced commit introducing
> virtchnl transaction manager and placing its deinitialization before those
> messages are sent. Then the sending is impossible due to no transactions
> being available.
>
> Lack of cleanup can lead to the FW becoming unresponsive from e.g.
> unloading-loading the driver and creating-destroying VFs afterwards.
>
> Move transaction manager deinitialization to after other virtchnl-related
> cleanup is done.
>
> Fixes: 34c21fa894a1 ("idpf: implement virtchnl transaction manager")
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>
> Signed-off-by: Larysa Zaremba <larysa.zaremba@xxxxxxxxx>
> ---
> drivers/net/ethernet/intel/idpf/idpf_virtchnl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
> b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
> index a5f9b7a5effe..f18f490dafd8 100644
> --- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
> +++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c

Tested-by: Krishneil Singh <krishneil.k.singh@xxxxxxxxx>