net/bnxt: fix to advance producer index
Checks
Commit Message
From: Rahul Gupta <rahul.gupta@broadcom.com>
When a queue is started after deferred_start, then increment raw_prod
irrespective of new mbuf is allocated or old mbufs are used.
Fixes: d256c73c1122 ("net/bnxt: fix memory leak during queue restart")
Cc: stable@dpdk.org
Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_rxr.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Comments
On Wed, May 20, 2020 at 10:23 AM Kalesh A P <
kalesh-anakkur.purayil@broadcom.com> wrote:
> From: Rahul Gupta <rahul.gupta@broadcom.com>
>
> When a queue is started after deferred_start, then increment raw_prod
> irrespective of new mbuf is allocated or old mbufs are used.
>
> Fixes: d256c73c1122 ("net/bnxt: fix memory leak during queue restart")
> Cc: stable@dpdk.org
>
> Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com>
> Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
>
Patch applied to dpdk-next-net-brcm. Thanks
> ---
> drivers/net/bnxt/bnxt_rxr.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c
> index d2955ba..ee1acb1 100644
> --- a/drivers/net/bnxt/bnxt_rxr.c
> +++ b/drivers/net/bnxt/bnxt_rxr.c
> @@ -987,9 +987,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
> rxq->queue_id, i,
> ring->ring_size);
> break;
> }
> - rxr->rx_prod = prod;
> - prod = RING_NEXT(rxr->rx_ring_struct, prod);
> }
> + rxr->rx_prod = prod;
> + prod = RING_NEXT(rxr->rx_ring_struct, prod);
> }
>
> ring = rxr->ag_ring_struct;
> @@ -1005,9 +1005,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
> rxq->queue_id, i,
> ring->ring_size);
> break;
> }
> - rxr->ag_prod = prod;
> - prod = RING_NEXT(rxr->ag_ring_struct, prod);
> }
> + rxr->ag_prod = prod;
> + prod = RING_NEXT(rxr->ag_ring_struct, prod);
> }
> PMD_DRV_LOG(DEBUG, "AGG Done!\n");
>
> --
> 2.10.1
>
>
@@ -987,9 +987,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
rxq->queue_id, i, ring->ring_size);
break;
}
- rxr->rx_prod = prod;
- prod = RING_NEXT(rxr->rx_ring_struct, prod);
}
+ rxr->rx_prod = prod;
+ prod = RING_NEXT(rxr->rx_ring_struct, prod);
}
ring = rxr->ag_ring_struct;
@@ -1005,9 +1005,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
rxq->queue_id, i, ring->ring_size);
break;
}
- rxr->ag_prod = prod;
- prod = RING_NEXT(rxr->ag_ring_struct, prod);
}
+ rxr->ag_prod = prod;
+ prod = RING_NEXT(rxr->ag_ring_struct, prod);
}
PMD_DRV_LOG(DEBUG, "AGG Done!\n");