net: mvneta: Do not allocate buffer in rxq init with HWBM
authorGregory CLEMENT <gregory.clement@free-electrons.com>
Thu, 1 Dec 2016 17:03:05 +0000 (18:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Dec 2016 18:52:00 +0000 (13:52 -0500)
For HWBM all buffers are allocated in mvneta_bm_construct() and in runtime
they are put into descriptors by hardware. There is no need to fill them
at this point.

Suggested-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Tested-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvneta.c

index 2445428bd79c649643c29a5b8eb44ac3aba4ea28..2c5fe532dcf1fe5a5eb2850b52fa1debd51a54d5 100644 (file)
@@ -2784,14 +2784,14 @@ static int mvneta_rxq_init(struct mvneta_port *pp,
                mvneta_rxq_buf_size_set(pp, rxq,
                                        MVNETA_RX_BUF_SIZE(pp->pkt_size));
                mvneta_rxq_bm_disable(pp, rxq);
+               mvneta_rxq_fill(pp, rxq, rxq->size);
        } else {
                mvneta_rxq_bm_enable(pp, rxq);
                mvneta_rxq_long_pool_set(pp, rxq);
                mvneta_rxq_short_pool_set(pp, rxq);
+               mvneta_rxq_non_occup_desc_add(pp, rxq, rxq->size);
        }
 
-       mvneta_rxq_fill(pp, rxq, rxq->size);
-
        return 0;
 }