net/mlx5: fix TxQ release debug log timing

Message ID 1588788659-25462-1-git-send-email-akozyrev@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix TxQ release debug log timing |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/travis-robot warning Travis build: failed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation fail Compilation issues
ci/iol-testing success Testing PASS

Commit Message

Alexander Kozyrev May 6, 2020, 6:10 p.m. UTC
  Program received signal SIGSEGV, Segmentation fault.
0x00000000008ef7c4 in mlx5_tx_queue_release (dpdk_txq=0x17ce01680) at
drivers/net/mlx5/mlx5_txq.c:302
301 mlx5_txq_release(ETH_DEV(priv), i);
302 DRV_LOG(DEBUG, "port %u removing Tx queue %u from list",
303         PORT_ID(priv), txq->idx);
The problem is txq is freed inside the mlx5_txq_release() function
and no longer valid in the debug log right after this invocation.
Move the debug log before the mlx5_txq_release() function to fix this.

Fixes: a6d83b6a92 ("net/mlx5: standardize on negative errno values")
Cc: stable@dpdk.org

Signed-off-by: Alexander Kozyrev <akozyrev@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 drivers/net/mlx5/mlx5_txq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Raslan Darawsheh May 11, 2020, 1:58 p.m. UTC | #1
Hi,
> -----Original Message-----
> From: Alexander Kozyrev <akozyrev@mellanox.com>
> Sent: Wednesday, May 6, 2020 9:11 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Raslan Darawsheh <rasland@mellanox.com>; Slava
> Ovsiienko <viacheslavo@mellanox.com>; Matan Azrad
> <matan@mellanox.com>
> Subject: [PATCH] net/mlx5: fix TxQ release debug log timing
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000008ef7c4 in mlx5_tx_queue_release (dpdk_txq=0x17ce01680) at
> drivers/net/mlx5/mlx5_txq.c:302
> 301 mlx5_txq_release(ETH_DEV(priv), i);
> 302 DRV_LOG(DEBUG, "port %u removing Tx queue %u from list",
> 303         PORT_ID(priv), txq->idx);
> The problem is txq is freed inside the mlx5_txq_release() function
> and no longer valid in the debug log right after this invocation.
> Move the debug log before the mlx5_txq_release() function to fix this.
> 
> Fixes: a6d83b6a92 ("net/mlx5: standardize on negative errno values")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Alexander Kozyrev <akozyrev@mellanox.com>
> Acked-by: Matan Azrad <matan@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_txq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
> index 29e5cab..a211fa9 100644
> --- a/drivers/net/mlx5/mlx5_txq.c
> +++ b/drivers/net/mlx5/mlx5_txq.c
> @@ -298,9 +298,9 @@
>  	priv = txq_ctrl->priv;
>  	for (i = 0; (i != priv->txqs_n); ++i)
>  		if ((*priv->txqs)[i] == txq) {
> -			mlx5_txq_release(ETH_DEV(priv), i);
>  			DRV_LOG(DEBUG, "port %u removing Tx queue %u
> from list",
>  				PORT_ID(priv), txq->idx);
> +			mlx5_txq_release(ETH_DEV(priv), i);
>  			break;
>  		}
>  }
> --
> 1.8.3.1

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
index 29e5cab..a211fa9 100644
--- a/drivers/net/mlx5/mlx5_txq.c
+++ b/drivers/net/mlx5/mlx5_txq.c
@@ -298,9 +298,9 @@ 
 	priv = txq_ctrl->priv;
 	for (i = 0; (i != priv->txqs_n); ++i)
 		if ((*priv->txqs)[i] == txq) {
-			mlx5_txq_release(ETH_DEV(priv), i);
 			DRV_LOG(DEBUG, "port %u removing Tx queue %u from list",
 				PORT_ID(priv), txq->idx);
+			mlx5_txq_release(ETH_DEV(priv), i);
 			break;
 		}
 }