vdpa/mlx5: fix virtq cleaning
Subsystems (2)
PATCH 1/1 vdpa/mlx5: fix virtq cleaning
The HW virtq object can be destroyed ether when the device is closed or when the state of the virtq becomes disabled.
Some parameters of the virtq should continue to be managed when the virtq state is changed but all of them must be initialized when the device is closed.
Wrongly, the enable parameter stayed on when the device is closed what might cause creation of invalid virtq in the next time a device is assigned to the driver.
Clean all the virtqs memory when the device is closed.
--- drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/vdpa/mlx5/mlx5_vdpa_virtq.c +2 -6
@@ -103,13 +103,8 @@for (i =0 ; i < priv->nr_virtqs; i++) { virtq = &priv->virtqs[i];mlx5_vdpa_virtq_unset (virtq); -if (virtq->counters) { +if (virtq->counters)claim_zero (mlx5_devx_cmd_destroy (virtq->counters)); - virtq->counters =NULL ; -memset (&virtq->reset,0 ,sizeof (virtq->reset)); - } -memset (virtq->err_time,0 ,sizeof (virtq->err_time)); - virtq->n_retry =0 ; }for (i =0 ; i < priv->num_lag_ports; i++) {if (priv->tiss[i]) {
@@ -126,6 +121,7 @@ priv->virtq_db_addr =NULL ; } priv->features =0 ; +memset (priv->virtqs,0 ,sizeof (*virtq) * priv->nr_virtqs); priv->nr_virtqs =0 ; }
Signature · 1 line
1.8.3.1
Quoted 1 line · Matan Azrad
The HW virtq object can be destroyed ether when the device is closed or
s/ether/either/
Quoted 42 lines
when the state of the virtq becomes disabled.
Some parameters of the virtq should continue to be managed when the virtq state is changed but all of them must be initialized when the device is closed.
Wrongly, the enable parameter stayed on when the device is closed what might cause creation of invalid virtq in the next time a device is assigned to the driver.
Clean all the virtqs memory when the device is closed.
Fixes c47d6e83334e ("vdpa/mlx5: support queue update")Signed-off-by Matan Azrad <[email protected]>Acked-by Xueming Li <[email protected]>--- drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)drivers/vdpa/mlx5/mlx5_vdpa_virtq.c +1
-6@@ -103,13 +103,8 @@for (i =0 ; i < priv->nr_virtqs; i++) { virtq = &priv->virtqs[i];mlx5_vdpa_virtq_unset (virtq); -if (virtq->counters) { +if (virtq->counters)claim_zero (mlx5_devx_cmd_destroy (virtq->counters)); - virtq->counters =NULL ; -memset (&virtq->reset,0 ,sizeof (virtq->reset)); - } -memset (virtq->err_time,0 ,sizeof (virtq->err_time)); - virtq->n_retry =0 ; }for (i =0 ; i < priv->num_lag_ports; i++) {if (priv->tiss[i]) {
drivers/vdpa/mlx5/mlx5_vdpa_virtq.c line 127
Quoted 7 lines
drivers/vdpa/mlx5/mlx5_vdpa_virtq.c +1
-0@@ -126,6 +121,7 @@ priv->virtq_db_addr =NULL ; } priv->features =0 ; +memset (priv->virtqs,0 ,sizeof (*virtq) * priv->nr_virtqs); priv->nr_virtqs =0 ; }
With typo fixed in commit message:
No need to resubmit, we can fix the typo while applying.
Thanks,
Maxime
Quoted 20 lines
-----Original Message-----
From: stable <[email protected]> On Behalf Of Matan Azrad
Sent: Monday, March 1, 2021 6:42 PM
To: [email protected]
Cc: Maxime Coquelin <[email protected]>; [email protected]
Subject: [dpdk-stable] [PATCH] vdpa/mlx5: fix virtq cleaningThe HW virtq object can be destroyed ether when the device is closed or when the state of the virtq becomes disabled.
Some parameters of the virtq should continue to be managed when the virtq state is changed but all of them must be initialized when the device is closed.
Wrongly, the enable parameter stayed on when the device is closed what might cause creation of invalid virtq in the next time a device is assigned to the driver.
Clean all the virtqs memory when the device is closed.
Quoted 7 lines
Fixes c47d6e83334e ("vdpa/mlx5: support queue update")Signed-off-by Matan Azrad <[email protected]>Acked-by Xueming Li <[email protected]>---
1.8.3.1
With commit log fixed, patch applied to next-virtio/main. Thanks!