summary refs log tree commit diff
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@haltian.com>2020-08-18 17:46:10 +0300
committerSimon Wunderlich <sw@simonwunderlich.de>2020-08-18 19:40:03 +0200
commit279e89b2281af3b1a9f04906e157992c19c9f163 (patch)
treecdf149d0f34da3234d8b9ebdfe377b745bb800f8
parentd8bf0c01642275c7dca1e5d02c34e4199c200b1f (diff)
downloadlinux-279e89b2281af3b1a9f04906e157992c19c9f163.tar.gz
batman-adv: bla: use netif_rx_ni when not in interrupt context
batadv_bla_send_claim() gets called from worker thread context through
batadv_bla_periodic_work(), thus netif_rx_ni needs to be used in that
case. This fixes "NOHZ: local_softirq_pending 08" log messages seen
when batman-adv is enabled.

Fixes: 23721387c409 ("batman-adv: add basic bridge loop avoidance code")
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@haltian.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
-rw-r--r--net/batman-adv/bridge_loop_avoidance.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 91a04ca373dc..8500f56cbd10 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -437,7 +437,10 @@ static void batadv_bla_send_claim(struct batadv_priv *bat_priv, u8 *mac,
 	batadv_add_counter(bat_priv, BATADV_CNT_RX_BYTES,
 			   skb->len + ETH_HLEN);
 
-	netif_rx(skb);
+	if (in_interrupt())
+		netif_rx(skb);
+	else
+		netif_rx_ni(skb);
 out:
 	if (primary_if)
 		batadv_hardif_put(primary_if);