From: Holger Schurig Date: Wed, 16 Jan 2008 14:48:44 +0000 (+0100) Subject: libertas cs/sdio: fix 'NOHZ: local_softirq_pending 08' message X-Git-Tag: v2.6.25-rc1~1162^2~115 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=ae3e0fcf901e4b7df87aef7ab39093e142a8de8b;p=linux-2.6-omap-h63xx.git libertas cs/sdio: fix 'NOHZ: local_softirq_pending 08' message netif_rx should be called only from interrupt context. if_cs and if_sdio receive packets from other contexts, and thus should call netif_rx_ni. Signed-off-by: Marc Pignat Acked-by: Holger Schurig Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c index 6332fd451a1..149557a478a 100644 --- a/drivers/net/wireless/libertas/rx.c +++ b/drivers/net/wireless/libertas/rx.c @@ -247,7 +247,10 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb) priv->stats.rx_packets++; skb->protocol = eth_type_trans(skb, dev); - netif_rx(skb); + if (in_interrupt()) + netif_rx(skb); + else + netif_rx_ni(skb); ret = 0; done: