diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2023-01-18 01:02:24 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-01-18 20:52:25 -0800 |
commit | fbf1cff98c9591bd60deb56e3ea5aa0efdc15843 (patch) | |
tree | 05b419fb4e06f849a5f160d4a2bf9999cd65c3c7 | |
parent | 1cbf19c575ddbec27eec99396329810b1a5f7976 (diff) | |
download | lwn-fbf1cff98c9591bd60deb56e3ea5aa0efdc15843.tar.gz lwn-fbf1cff98c9591bd60deb56e3ea5aa0efdc15843.zip |
net: enetc: set up RX ring indices from enetc_setup_rxbdr()
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>
-rw-r--r-- | drivers/net/ethernet/freescale/enetc/enetc.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index 911686df16e4..4f8c94957a8e 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -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(); |