summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2021-11-20 13:39:39 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-11-26 11:58:45 +0100
commit45011f2973f6b52cf50db397bb27bf805f5f0e7f (patch)
tree04a34f6a20fcf056f1665d2ae3c6c874181b14fd /net
parent5cf60ad2478b4b5090ff70f1b4d027d1103220c1 (diff)
downloadlinux-stable-45011f2973f6b52cf50db397bb27bf805f5f0e7f.tar.gz
linux-stable-45011f2973f6b52cf50db397bb27bf805f5f0e7f.tar.bz2
linux-stable-45011f2973f6b52cf50db397bb27bf805f5f0e7f.zip
batman-adv: Avoid WARN_ON timing related checks
commit 9f460ae31c4435fd022c443a6029352217a16ac1 upstream. The soft/batadv interface for a queued OGM can be changed during the time the OGM was queued for transmission and when the OGM is actually transmitted by the worker. But WARN_ON must be used to denote kernel bugs and not to print simple warnings. A warning can simply be printed using pr_warn. Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> Reported-by: syzbot+c0b807de416427ff3dd1@syzkaller.appspotmail.com Fixes: ef0a937f7a14 ("batman-adv: consider outgoing interface in OGM sending") Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> [ bp: 4.4 backported: adjust context. ] Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net')
-rw-r--r--net/batman-adv/bat_iv_ogm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
index caea5bb38d4b..6f8d2fe114f6 100644
--- a/net/batman-adv/bat_iv_ogm.c
+++ b/net/batman-adv/bat_iv_ogm.c
@@ -526,8 +526,10 @@ static void batadv_iv_ogm_emit(struct batadv_forw_packet *forw_packet)
if (WARN_ON(!forw_packet->if_outgoing))
goto out;
- if (WARN_ON(forw_packet->if_outgoing->soft_iface != soft_iface))
+ if (forw_packet->if_outgoing->soft_iface != soft_iface) {
+ pr_warn("%s: soft interface switch for queued OGM\n", __func__);
goto out;
+ }
if (forw_packet->if_incoming->if_status != BATADV_IF_ACTIVE)
goto out;