staging: et131x: use netif_rx_ni() for packet receive
authorMark Einon <mark.einon@gmail.com>
Mon, 20 Feb 2012 22:33:24 +0000 (22:33 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Feb 2012 19:59:59 +0000 (11:59 -0800)
netif_rx is meant to be called from interrupts because it doesn't wake
up ksoftirqd.  For calling from outside interrupts, netif_rx_ni exists.

This stops the error "NOHZ: local_softirq_panding 08" that happens on
some machines with NOHZ and plip --- it is caused by the fact that
softirq is pending and ksoftirqd is sleeping.

Signed-off-by: Mark Einon <mark.einon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/et131x/et131x.c

index 2c4069f..b4167ad 100644 (file)
@@ -3109,7 +3109,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter *adapter)
                skb->protocol = eth_type_trans(skb, adapter->netdev);
                skb->ip_summed = CHECKSUM_NONE;
 
-               netif_rx(skb);
+               netif_rx_ni(skb);
        } else {
                rfd->len = 0;
        }