aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Schurig <hs4233@mail.mn-solutions.de>2008-01-16 09:48:44 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:10:04 -0500
commitae3e0fcf901e4b7df87aef7ab39093e142a8de8b (patch)
treebcd8fce4819ad95181ec8694ae690ae6cad9f060
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>
-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 6332fd451a1e..149557a478ac 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)
247 priv->stats.rx_packets++; 247 priv->stats.rx_packets++;
248 248
249 skb->protocol = eth_type_trans(skb, dev); 249 skb->protocol = eth_type_trans(skb, dev);
250 netif_rx(skb); 250 if (in_interrupt())
251 netif_rx(skb);
252 else
253 netif_rx_ni(skb);
251 254
252 ret = 0; 255 ret = 0;
253done: 256done: