2015-10-27 07:35:24

by Alexander Aring

[permalink] [raw]
Subject: [PATCH bluetooth-next] bluetooth: 6lowpan: fix NOHZ: local_softirq_pending

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 <[email protected]>
Cc: Jukka Rissanen <[email protected]>
Signed-off-by: Alexander Aring <[email protected]>
---
net/bluetooth/6lowpan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index d85af23..9e9cca3 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -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,
--
2.6.1



2015-10-27 08:56:04

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH bluetooth-next] bluetooth: 6lowpan: fix NOHZ: local_softirq_pending

Hi Alex,

> 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 <[email protected]>
> Cc: Jukka Rissanen <[email protected]>
> Signed-off-by: Alexander Aring <[email protected]>
> ---
> net/bluetooth/6lowpan.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel


2015-10-27 08:15:14

by Jukka Rissanen

[permalink] [raw]
Subject: Re: [PATCH bluetooth-next] bluetooth: 6lowpan: fix NOHZ: local_softirq_pending

I have verified that this works.

Acked-by: Jukka Rissanen <[email protected]>


Cheers,
Jukka


On ti, 2015-10-27 at 08:35 +0100, Alexander Aring wrote:
> 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 <[email protected]>
> Cc: Jukka Rissanen <[email protected]>
> Signed-off-by: Alexander Aring <[email protected]>
> ---
> net/bluetooth/6lowpan.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
> index d85af23..9e9cca3 100644
> --- a/net/bluetooth/6lowpan.c
> +++ b/net/bluetooth/6lowpan.c
> @@ -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,