bluetooth: 6lowpan: fix NOHZ: local_softirq_pending
authorAlexander Aring <alex.aring@gmail.com>
Tue, 27 Oct 2015 07:35:24 +0000 (08:35 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 27 Oct 2015 08:53:36 +0000 (09:53 +0100)
Jukka reported about the following warning:

"NOHZ: local_softirq_pending 08"

I remember this warning and we had a similar issue when using workqueues
and calling netif_rx. See commit 5ff3fec ("mac802154: fix NOHZ
local_softirq_pending 08 warning").

This warning occurs when calling "netif_rx" inside the wrong context
(non softirq context). The net core api offers "netif_rx_ni" to call
netif_rx inside the correct softirq context.

Reported-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/6lowpan.c

index d85af2385486c60f7cf10f84ca2b4e08ff5dbeb2..9e9cca3689a08ab7c9038b9bab4c61d7214004af 100644 (file)
@@ -263,7 +263,7 @@ static int give_skb_to_upper(struct sk_buff *skb, struct net_device *dev)
        if (!skb_cp)
                return NET_RX_DROP;
 
-       return netif_rx(skb_cp);
+       return netif_rx_ni(skb_cp);
 }
 
 static int iphc_decompress(struct sk_buff *skb, struct net_device *netdev,