enc28j60: use netif_rx_ni() to deliver RX packets
authorBaruch Siach <baruch@tkos.co.il>
Mon, 15 Dec 2008 20:18:52 +0000 (20:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Dec 2008 09:48:29 +0000 (01:48 -0800)
The enc28j60 driver reads incoming packets in the process (workqueue) context,
not in a tasklet or the interrupt context.  Thus, we should use netif_rx_ni()
to deliver those packets to the networking layer, instead of netif_rx(). This
way incoming packets don't wait in the incoming queue for the next IRQ to be
serviced.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/enc28j60.c

index c414554ac3217f22845b8e71901117bc5fffaaad..36cb6e95b465c2545b822d30c14a675b6bd39e07 100644 (file)
@@ -959,7 +959,7 @@ static void enc28j60_hw_rx(struct net_device *ndev)
                        ndev->stats.rx_packets++;
                        ndev->stats.rx_bytes += len;
                        ndev->last_rx = jiffies;
-                       netif_rx(skb);
+                       netif_rx_ni(skb);
                }
        }
        /*