aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/libertas/rx.c
diff options
context:
space:
mode:
authorHolger Schurig <hs4233@mail.mn-solutions.de>2008-01-16 15:48:44 +0100
committerDavid S. Miller <davem@davemloft.net>2008-01-28 15:10:04 -0800
commitae3e0fcf901e4b7df87aef7ab39093e142a8de8b (patch)
treebcd8fce4819ad95181ec8694ae690ae6cad9f060 /drivers/net/wireless/libertas/rx.c
parent8ac919be0520b22d106b1d5f3e8f9b5c142089eb (diff)
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 <marc.pignat@hevs.ch> Acked-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/rx.c')
-rw-r--r--drivers/net/wireless/libertas/rx.c5
1 files changed, 4 insertions, 1 deletions
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: