net: enetc: set up RX ring indices from enetc_setup_rxbdr()
authorVladimir Oltean <vladimir.oltean@nxp.com>
Tue, 17 Jan 2023 23:02:24 +0000 (01:02 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 19 Jan 2023 04:52:25 +0000 (20:52 -0800)
There is only one place which needs to set up indices in the RX ring.
Be consistent with what was done in the TX path and do this in
enetc_setup_rxbdr().

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/enetc/enetc.c

index 911686d..4f8c949 100644 (file)
@@ -1832,9 +1832,6 @@ static int enetc_alloc_rxbdr(struct enetc_bdr *rxr, bool extended)
                return err;
        }
 
-       rxr->next_to_clean = 0;
-       rxr->next_to_use = 0;
-       rxr->next_to_alloc = 0;
        rxr->ext_en = extended;
 
        return 0;
@@ -1914,10 +1911,6 @@ static void enetc_free_rx_ring(struct enetc_bdr *rx_ring)
                __free_page(rx_swbd->page);
                rx_swbd->page = NULL;
        }
-
-       rx_ring->next_to_clean = 0;
-       rx_ring->next_to_use = 0;
-       rx_ring->next_to_alloc = 0;
 }
 
 static void enetc_free_rxtx_rings(struct enetc_ndev_priv *priv)
@@ -2084,6 +2077,10 @@ static void enetc_setup_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring)
        rx_ring->rcir = hw->reg + ENETC_BDR(RX, idx, ENETC_RBCIR);
        rx_ring->idr = hw->reg + ENETC_SIRXIDR;
 
+       rx_ring->next_to_clean = 0;
+       rx_ring->next_to_use = 0;
+       rx_ring->next_to_alloc = 0;
+
        enetc_lock_mdio();
        enetc_refill_rx_ring(rx_ring, enetc_bd_unused(rx_ring));
        enetc_unlock_mdio();