diff options
author | Holger Schurig <hs4233@mail.mn-solutions.de> | 2008-01-16 15:48:44 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 15:10:04 -0800 |
commit | ae3e0fcf901e4b7df87aef7ab39093e142a8de8b (patch) | |
tree | bcd8fce4819ad95181ec8694ae690ae6cad9f060 /drivers/net/wireless/libertas/rx.c | |
parent | 8ac919be0520b22d106b1d5f3e8f9b5c142089eb (diff) | |
download | talos-op-linux-ae3e0fcf901e4b7df87aef7ab39093e142a8de8b.tar.gz talos-op-linux-ae3e0fcf901e4b7df87aef7ab39093e142a8de8b.zip |
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.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) 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: |