diff options
author | Holger Schurig <hs4233@mail.mn-solutions.de> | 2008-01-16 09:48:44 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:10:04 -0500 |
commit | ae3e0fcf901e4b7df87aef7ab39093e142a8de8b (patch) | |
tree | bcd8fce4819ad95181ec8694ae690ae6cad9f060 | |
parent | 8ac919be0520b22d106b1d5f3e8f9b5c142089eb (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.c | 5 |
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; |
253 | done: | 256 | done: |