diff options
| author | Sven Eckelmann <sven@narfation.org> | 2020-03-18 00:26:48 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-03-20 09:06:24 +0100 |
| commit | 114cdd5635ac6dd9c0e122714993727aacc9407e (patch) | |
| tree | adacea138d2173303762e1aed2fe0535ca6325a9 /scripts/stackusage | |
| parent | 48aafec676bbff195d6f31bafca08809485d3f28 (diff) | |
batman-adv: Only put gw_node list reference when removed
commit c18bdd018e8912ca73ad6c12120b7283b5038875 upstream.
The batadv_gw_node reference counter in batadv_gw_node_update can only be
reduced when the list entry was actually removed. Otherwise the reference
counter may reach zero when batadv_gw_node_update is called from two
different contexts for the same gw_node but only one context is actually
removing the entry from the list.
The release function for this gw_node is not called inside the list_lock
spinlock protected region because the function batadv_gw_node_update still
holds a gw_node reference for the object pointer on the stack. Thus the
actual release function (when required) will be called only at the end of
the function.
Fixes: bd3524c14bd0 ("batman-adv: remove obsolete deleted attribute for gateway node")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/stackusage')
0 files changed, 0 insertions, 0 deletions
