]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: sgi: ioc3-eth: get rid of ioc3_clean_rx_ring()
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Fri, 30 Aug 2019 09:25:29 +0000 (11:25 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Aug 2019 20:54:35 +0000 (13:54 -0700)
Move clearing of the descriptor valid bit into ioc3_alloc_rings. This
makes ioc3_clean_rx_ring obsolete.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sgi/ioc3-eth.c

index e84239734338bf94787a6f656ad7d6d742c99f9f..fe77e4d7732f5fb7d6f15a1a94695544fcba50ab 100644 (file)
@@ -761,26 +761,6 @@ static void ioc3_mii_start(struct ioc3_private *ip)
        add_timer(&ip->ioc3_timer);
 }
 
-static inline void ioc3_clean_rx_ring(struct ioc3_private *ip)
-{
-       struct ioc3_erxbuf *rxb;
-       struct sk_buff *skb;
-       int i;
-
-       for (i = ip->rx_ci; i & 15; i++) {
-               ip->rx_skbs[ip->rx_pi] = ip->rx_skbs[ip->rx_ci];
-               ip->rxr[ip->rx_pi++] = ip->rxr[ip->rx_ci++];
-       }
-       ip->rx_pi &= RX_RING_MASK;
-       ip->rx_ci &= RX_RING_MASK;
-
-       for (i = ip->rx_ci; i != ip->rx_pi; i = (i + 1) & RX_RING_MASK) {
-               skb = ip->rx_skbs[i];
-               rxb = (struct ioc3_erxbuf *)(skb->data - RX_OFFSET);
-               rxb->w0 = 0;
-       }
-}
-
 static inline void ioc3_clean_tx_ring(struct ioc3_private *ip)
 {
        struct sk_buff *skb;
@@ -838,6 +818,7 @@ static void ioc3_alloc_rings(struct net_device *dev)
                /* Because we reserve afterwards. */
                skb_put(skb, (1664 + RX_OFFSET));
                rxb = (struct ioc3_erxbuf *)skb->data;
+               rxb->w0 = 0;    /* Clear valid flag */
                ip->rxr[i] = cpu_to_be64(ioc3_map(rxb, 1));
                skb_reserve(skb, RX_OFFSET);
        }
@@ -857,7 +838,6 @@ static void ioc3_init_rings(struct net_device *dev)
        ioc3_free_rings(ip);
        ioc3_alloc_rings(dev);
 
-       ioc3_clean_rx_ring(ip);
        ioc3_clean_tx_ring(ip);
 
        /* Now the rx ring base, consume & produce registers.  */