linux/net/batman-adv
Linus Lüssing a3c7cd0cdf batman-adv: mcast: fix multicast tt/tvlv worker locking
Syzbot has reported some issues with the locking assumptions made for
the multicast tt/tvlv worker: It was able to trigger the WARN_ON() in
batadv_mcast_mla_tt_retract() and batadv_mcast_mla_tt_add().
While hard/not reproduceable for us so far it seems that the
delayed_work_pending() we use might not be quite safe from reordering.

Therefore this patch adds an explicit, new spinlock to protect the
update of the mla_list and flags in bat_priv and then removes the
WARN_ON(delayed_work_pending()).

Reported-by: syzbot+83f2d54ec6b7e417e13f@syzkaller.appspotmail.com
Reported-by: syzbot+050927a651272b145a5d@syzkaller.appspotmail.com
Reported-by: syzbot+979ffc89b87309b1b94b@syzkaller.appspotmail.com
Reported-by: syzbot+f9f3f388440283da2965@syzkaller.appspotmail.com
Fixes: cbebd363b2 ("batman-adv: Use own timer for multicast TT and TVLV updates")
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
2019-05-06 11:40:46 +02:00
..
bat_algo.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_algo.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_iv_ogm.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_iv_ogm.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_v_elp.c batman-adv: fix warning in function batadv_v_elp_get_throughput 2019-03-25 09:31:19 +01:00
bat_v_elp.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_v_ogm.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_v_ogm.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_v.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bat_v.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bitarray.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bitarray.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
bridge_loop_avoidance.c batman-adv: Reduce claim hash refcnt only for removed entry 2019-03-25 09:31:19 +01:00
bridge_loop_avoidance.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
debugfs.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
debugfs.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
distributed-arp-table.c batman-adv: fix memory leak in in batadv_dat_put_dhcp 2019-02-06 19:42:52 +01:00
distributed-arp-table.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
fragmentation.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
fragmentation.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
gateway_client.c batman-adv: Add gateway mesh genl configuration 2019-02-09 14:28:14 +01:00
gateway_client.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
gateway_common.c batman-adv: Add gateway mesh genl configuration 2019-02-09 14:28:14 +01:00
gateway_common.h batman-adv: Add gateway mesh genl configuration 2019-02-09 14:28:14 +01:00
hard-interface.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-08 15:00:17 -08:00
hard-interface.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
hash.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
hash.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
icmp_socket.c This feature/cleanup patchset includes the following patches: 2019-02-01 11:04:13 -08:00
icmp_socket.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
Kconfig batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
log.c This feature/cleanup patchset includes the following patches: 2019-02-01 11:04:13 -08:00
log.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
main.c batman-adv: mcast: fix multicast tt/tvlv worker locking 2019-05-06 11:40:46 +02:00
main.h batman-adv: Start new development cycle 2019-05-06 11:40:46 +02:00
Makefile batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
multicast.c batman-adv: mcast: fix multicast tt/tvlv worker locking 2019-05-06 11:40:46 +02:00
multicast.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
netlink.c batman-adv: Trigger genl notification on sysfs config change 2019-02-09 14:28:15 +01:00
netlink.h batman-adv: Trigger genl notification on sysfs config change 2019-02-09 14:28:15 +01:00
network-coding.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
network-coding.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
originator.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
originator.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
routing.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
routing.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
send.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
send.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
soft-interface.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-15 12:38:38 -08:00
soft-interface.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
sysfs.c batman-adv: Fix genl notification for throughput_override 2019-03-25 09:31:19 +01:00
sysfs.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
tp_meter.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
tp_meter.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
trace.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
trace.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
translation-table.c batman-adv: Reduce tt_global hash refcnt only for removed entry 2019-03-25 09:31:19 +01:00
translation-table.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
tvlv.c batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
tvlv.h batman-adv: Update copyright years for 2019 2019-01-04 11:04:24 +01:00
types.h batman-adv: mcast: fix multicast tt/tvlv worker locking 2019-05-06 11:40:46 +02:00