ieee80211_tx_status() documentation says "This function may not be called in IRQ context", and it is called by rt2800usb from a workqueue context. Thus it needs to call netif_rx_ni() instead of netif_rx(). This change fixes the "NOHZ: local_softirq_pending 08" messages I've been getting with rt2800usb. Signed-off-by: Johannes Stezenbach <js@xxxxxxxxx> -- net/mac80211/status.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mac80211/status.c b/net/mac80211/status.c index bed7e32..ba8dd8e 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -403,7 +403,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) skb2 = skb_clone(skb, GFP_ATOMIC); if (skb2) { skb2->dev = prev_dev; - netif_rx(skb2); + netif_rx_ni(skb2); } } @@ -412,7 +412,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) } if (prev_dev) { skb->dev = prev_dev; - netif_rx(skb); + netif_rx_ni(skb); skb = NULL; } rcu_read_unlock(); -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html