mirror of
https://git.openwrt.org/feed/routing.git
synced 2025-01-08 11:47:51 +08:00
batman-adv: Merge bugfixes from 2020.0
* Don't schedule OGM for disabled interface Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
parent
5cba01e37a
commit
305cce9234
@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=batman-adv
|
||||
|
||||
PKG_VERSION:=2016.5
|
||||
PKG_RELEASE:=15
|
||||
PKG_RELEASE:=16
|
||||
PKG_MD5SUM:=6717a933a08dd2a01b00df30cb9f16a8
|
||||
PKG_HASH:=d0a0fc90c4f410b57d043215e253bb0b855efa5edbe165d87c17bfdcfafd0db7
|
||||
|
||||
|
@ -0,0 +1,37 @@
|
||||
From: Sven Eckelmann <sven@narfation.org>
|
||||
Date: Sun, 16 Feb 2020 13:02:06 +0100
|
||||
Subject: batman-adv: Don't schedule OGM for disabled interface
|
||||
|
||||
A transmission scheduling for an interface which is currently dropped by
|
||||
batadv_iv_ogm_iface_disable could still be in progress. The B.A.T.M.A.N. V
|
||||
is simply cancelling the workqueue item in an synchronous way but this is
|
||||
not possible with B.A.T.M.A.N. IV because the OGM submissions are
|
||||
intertwined.
|
||||
|
||||
Instead it has to stop submitting the OGM when it detect that the buffer
|
||||
pointer is set to NULL.
|
||||
|
||||
Reported-by: syzbot+a98f2016f40b9cd3818a@syzkaller.appspotmail.com
|
||||
Reported-by: syzbot+ac36b6a33c28a491e929@syzkaller.appspotmail.com
|
||||
Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
|
||||
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
Cc: Hillf Danton <hdanton@sina.com>
|
||||
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
|
||||
|
||||
Origin: upstream, https://git.open-mesh.org/batman-adv.git/commit/a089c55ca004b396d340baae58abe9a79f32cc0f
|
||||
|
||||
diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
|
||||
index 80fc960e656eb2f11f58fc8211235e033331bfd5..d21c88cecf2a54fbb88cd3d74d460278f5b4396b 100644
|
||||
--- a/net/batman-adv/bat_iv_ogm.c
|
||||
+++ b/net/batman-adv/bat_iv_ogm.c
|
||||
@@ -962,6 +962,10 @@ static void batadv_iv_ogm_schedule_buff(struct batadv_hard_iface *hard_iface)
|
||||
|
||||
lockdep_assert_held(&hard_iface->bat_iv.ogm_buff_mutex);
|
||||
|
||||
+ /* interface already disabled by batadv_iv_ogm_iface_disable */
|
||||
+ if (!*ogm_buff)
|
||||
+ return;
|
||||
+
|
||||
/* the interface gets activated here to avoid race conditions between
|
||||
* the moment of activating the interface in
|
||||
* hardif_activate_interface() where the originator mac is set and
|
Loading…
Reference in New Issue
Block a user