net/mlx5: fix Tx queue start

Message ID 1603781005-21080-1-git-send-email-matan@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix Tx queue start |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK

Commit Message

Matan Azrad Oct. 27, 2020, 6:43 a.m. UTC
  The Tx queue stop\start operations update the HW state of the Tx queue
object. The stop API should update the state from ready to reset in
order to stop any queue traffic and the start API should update the state
from reset to ready in order to open the traffic path.

The start API wrongly tried to change the state from ready to ready what
caused a failure in FW on the current state validation.

Replace ready to ready command by reset to ready command in the Tx start
API.

Fixes: 161d103b231c ("net/mlx5: add queue start and stop")
Cc: stable@dpdk.org

Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Asaf Penso <asafp@nvidia.com>
---
 drivers/net/mlx5/mlx5.h     | 1 -
 drivers/net/mlx5/mlx5_txq.c | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)
  

Comments

Raslan Darawsheh Oct. 27, 2020, 2:02 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Matan Azrad
> Sent: Tuesday, October 27, 2020 8:43 AM
> To: Slava Ovsiienko <viacheslavo@nvidia.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix Tx queue start
> 
> The Tx queue stop\start operations update the HW state of the Tx queue
> object. The stop API should update the state from ready to reset in
> order to stop any queue traffic and the start API should update the state
> from reset to ready in order to open the traffic path.
> 
> The start API wrongly tried to change the state from ready to ready what
> caused a failure in FW on the current state validation.
> 
> Replace ready to ready command by reset to ready command in the Tx start
> API.
> 
> Fixes: 161d103b231c ("net/mlx5: add queue start and stop")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Matan Azrad <matan@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> Acked-by: Asaf Penso <asafp@nvidia.com>
> ---
>  drivers/net/mlx5/mlx5.h     | 1 -
>  drivers/net/mlx5/mlx5_txq.c | 2 +-
>  2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
> index 7429811..0902628 100644
> --- a/drivers/net/mlx5/mlx5.h
> +++ b/drivers/net/mlx5/mlx5.h
> @@ -788,7 +788,6 @@ enum mlx5_rxq_modify_type {
>  };
> 
>  enum mlx5_txq_modify_type {
> -	MLX5_TXQ_MOD_RDY2RDY, /* modify state from ready to ready. */
>  	MLX5_TXQ_MOD_RST2RDY, /* modify state from reset to ready. */
>  	MLX5_TXQ_MOD_RDY2RST, /* modify state from ready to reset. */
>  	MLX5_TXQ_MOD_ERR2RDY, /* modify state from error to ready. */
> diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
> index dca9c05..605cbfc 100644
> --- a/drivers/net/mlx5/mlx5_txq.c
> +++ b/drivers/net/mlx5/mlx5_txq.c
> @@ -253,7 +253,7 @@
> 
>  	MLX5_ASSERT(rte_eal_process_type() ==  RTE_PROC_PRIMARY);
>  	ret = priv->obj_ops.txq_obj_modify(txq_ctrl->obj,
> -					   MLX5_TXQ_MOD_RDY2RDY,
> +					   MLX5_TXQ_MOD_RST2RDY,
>  					   (uint8_t)priv->dev_port);
>  	if (ret)
>  		return ret;
> --
> 1.8.3.1

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 7429811..0902628 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -788,7 +788,6 @@  enum mlx5_rxq_modify_type {
 };
 
 enum mlx5_txq_modify_type {
-	MLX5_TXQ_MOD_RDY2RDY, /* modify state from ready to ready. */
 	MLX5_TXQ_MOD_RST2RDY, /* modify state from reset to ready. */
 	MLX5_TXQ_MOD_RDY2RST, /* modify state from ready to reset. */
 	MLX5_TXQ_MOD_ERR2RDY, /* modify state from error to ready. */
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index dca9c05..605cbfc 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -253,7 +253,7 @@ 
 
 	MLX5_ASSERT(rte_eal_process_type() ==  RTE_PROC_PRIMARY);
 	ret = priv->obj_ops.txq_obj_modify(txq_ctrl->obj,
-					   MLX5_TXQ_MOD_RDY2RDY,
+					   MLX5_TXQ_MOD_RST2RDY,
 					   (uint8_t)priv->dev_port);
 	if (ret)
 		return ret;