From: Mikulas Patocka Date: Thu, 22 Nov 2007 20:19:39 +0000 (+0100) Subject: plip: use netif_rx_ni() for packet receive X-Git-Tag: v2.6.24-rc4~98 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f6ce5cca74b8681fdf1d7307edc66a7213b43f6f;p=linux-2.6 plip: use netif_rx_ni() for packet receive 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 fixes plip to use netif_rx_ni. It fixes the infamous 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: Mikulas Patocka Signed-off-by: Linus Torvalds --- diff --git a/drivers/net/plip.c b/drivers/net/plip.c index 5071fcd8a0..baf2cbfc88 100644 --- a/drivers/net/plip.c +++ b/drivers/net/plip.c @@ -663,7 +663,7 @@ plip_receive_packet(struct net_device *dev, struct net_local *nl, case PLIP_PK_DONE: /* Inform the upper layer for the arrival of a packet. */ rcv->skb->protocol=plip_type_trans(rcv->skb, dev); - netif_rx(rcv->skb); + netif_rx_ni(rcv->skb); dev->last_rx = jiffies; dev->stats.rx_bytes += rcv->length.h; dev->stats.rx_packets++;