]> git.baikalelectronics.ru Git - kernel.git/commit
batman-adv: protect tt_local_entry from concurrent delete events
authorMarek Lindner <mareklindner@neomailbox.ch>
Wed, 17 Jun 2015 12:01:36 +0000 (20:01 +0800)
committerAntonio Quartulli <antonio@meshcoding.com>
Tue, 4 Aug 2015 22:31:47 +0000 (00:31 +0200)
commit1604e9ecd5b21538de66667a8a2e89ab9b8d77a6
tree5a485c9fbb22698333415e7804510ff108d21e20
parent9bec1bdc330e4df8770e142fe7e81e5a68869f48
batman-adv: protect tt_local_entry from concurrent delete events

The tt_local_entry deletion performed in batadv_tt_local_remove() was neither
protecting against simultaneous deletes nor checking whether the element was
still part of the list before calling hlist_del_rcu().

Replacing the hlist_del_rcu() call with batadv_hash_remove() provides adequate
protection via hash spinlocks as well as an is-element-still-in-hash check to
avoid 'blind' hash removal.

Fixes: 15fb8bf221f3 ("batman-adv: roaming handling mechanism redesign")
Reported-by: alfonsname@web.de
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
net/batman-adv/translation-table.c