[05/15] net/bnxt: reset Rx allocation state on port restart

Message ID 20190712060622.76975-6-ajit.khaparde@broadcom.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series bnxt patch series |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ajit Khaparde July 12, 2019, 6:06 a.m. UTC
  From: Lance Richardson <lance.richardson@broadcom.com>

Move call site of bnxt_rxq_vec_setup() to ensure that rxq->rxrearm_nb
and rxq->rxrearm_start are reinitialized correctly when a port is
restarted.

Fixes: af3ed597e305 ("net/bnxt: initial vector-mode driver")
Reviewed-by: Christopher Reder <christopher.reder@broadcom.com>
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
 drivers/net/bnxt/bnxt_ring.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Lance Richardson July 12, 2019, 12:06 p.m. UTC | #1
On Fri, Jul 12, 2019 at 2:06 AM Ajit Khaparde
<ajit.khaparde@broadcom.com> wrote:
>
> From: Lance Richardson <lance.richardson@broadcom.com>
>
> Move call site of bnxt_rxq_vec_setup() to ensure that rxq->rxrearm_nb
> and rxq->rxrearm_start are reinitialized correctly when a port is
> restarted.
>
> Fixes: af3ed597e305 ("net/bnxt: initial vector-mode driver")
> Reviewed-by: Christopher Reder <christopher.reder@broadcom.com>
> Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  drivers/net/bnxt/bnxt_ring.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
> index 16327dbe9..13478fa02 100644
> --- a/drivers/net/bnxt/bnxt_ring.c
> +++ b/drivers/net/bnxt/bnxt_ring.c
> @@ -613,6 +613,9 @@ int bnxt_alloc_hwrm_rings(struct bnxt *bp)
>                 bnxt_db_write(&rxr->rx_db, rxr->rx_prod);
>                 bnxt_db_write(&rxr->ag_db, rxr->ag_prod);
>                 rxq->index = i;
> +#ifdef RTE_LIBRTE_BNXT_INC_VECTOR

This #ifdef should be removed, the macro is never defined in upstream.

> +               bnxt_rxq_vec_setup(rxq);
> +#endif
>         }
>
>         for (i = 0; i < bp->tx_cp_nr_rings; i++) {
> --
> 2.20.1 (Apple Git-117)
>
  
Lance Richardson July 12, 2019, 12:09 p.m. UTC | #2
On Fri, Jul 12, 2019 at 8:06 AM Lance Richardson
<lance.richardson@broadcom.com> wrote:
>
> On Fri, Jul 12, 2019 at 2:06 AM Ajit Khaparde
> <ajit.khaparde@broadcom.com> wrote:
> >
> > From: Lance Richardson <lance.richardson@broadcom.com>
> >
> > Move call site of bnxt_rxq_vec_setup() to ensure that rxq->rxrearm_nb
> > and rxq->rxrearm_start are reinitialized correctly when a port is
> > restarted.
> >
> > Fixes: af3ed597e305 ("net/bnxt: initial vector-mode driver")
> > Reviewed-by: Christopher Reder <christopher.reder@broadcom.com>
> > Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
> > Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> > ---
> >  drivers/net/bnxt/bnxt_ring.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
> > index 16327dbe9..13478fa02 100644
> > --- a/drivers/net/bnxt/bnxt_ring.c
> > +++ b/drivers/net/bnxt/bnxt_ring.c
> > @@ -613,6 +613,9 @@ int bnxt_alloc_hwrm_rings(struct bnxt *bp)
> >                 bnxt_db_write(&rxr->rx_db, rxr->rx_prod);
> >                 bnxt_db_write(&rxr->ag_db, rxr->ag_prod);
> >                 rxq->index = i;
> > +#ifdef RTE_LIBRTE_BNXT_INC_VECTOR
>
> This #ifdef should be removed, the macro is never defined in upstream.

Correction, it needs to be changed to "#ifdef RTE_ARCH_X86".

   Lance

>
> > +               bnxt_rxq_vec_setup(rxq);
> > +#endif
> >         }
> >
> >         for (i = 0; i < bp->tx_cp_nr_rings; i++) {
> > --
> > 2.20.1 (Apple Git-117)
> >
  

Patch

diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c
index 16327dbe9..13478fa02 100644
--- a/drivers/net/bnxt/bnxt_ring.c
+++ b/drivers/net/bnxt/bnxt_ring.c
@@ -613,6 +613,9 @@  int bnxt_alloc_hwrm_rings(struct bnxt *bp)
 		bnxt_db_write(&rxr->rx_db, rxr->rx_prod);
 		bnxt_db_write(&rxr->ag_db, rxr->ag_prod);
 		rxq->index = i;
+#ifdef RTE_LIBRTE_BNXT_INC_VECTOR
+		bnxt_rxq_vec_setup(rxq);
+#endif
 	}
 
 	for (i = 0; i < bp->tx_cp_nr_rings; i++) {