diff options
author | Sven Eckelmann <sven@narfation.org> | 2015-06-21 14:45:14 +0200 |
---|---|---|
committer | Antonio Quartulli <antonio@meshcoding.com> | 2015-08-25 00:12:23 +0200 |
commit | 2c72d655b04450056566bcbfe89c2427376b60b4 (patch) | |
tree | 79b4d9eaff924dea2776a3ac3758550d736dd819 /net/batman-adv/network-coding.c | |
parent | batman-adv: convert bat_priv->tt.req_list to hlist (diff) | |
download | linux-2c72d655b04450056566bcbfe89c2427376b60b4.tar.xz linux-2c72d655b04450056566bcbfe89c2427376b60b4.zip |
batman-adv: Annotate deleting functions with external lock via lockdep
Functions which use (h)list_del* are requiring correct locking when they
operate on global lists. Most of the time the search in the list and the
delete are done in the same function. All other cases should have it
visible that they require a special lock to avoid race conditions.
Lockdep asserts can be used to check these problem during runtime when the
lockdep functionality is enabled.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Diffstat (limited to 'net/batman-adv/network-coding.c')
-rw-r--r-- | net/batman-adv/network-coding.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/batman-adv/network-coding.c b/net/batman-adv/network-coding.c index ccfe5d86b106..f5276be2c77c 100644 --- a/net/batman-adv/network-coding.c +++ b/net/batman-adv/network-coding.c @@ -586,6 +586,8 @@ static bool batadv_nc_sniffed_purge(struct batadv_priv *bat_priv, unsigned long timeout = bat_priv->nc.max_buffer_time; bool res = false; + lockdep_assert_held(&nc_path->packet_list_lock); + /* Packets are added to tail, so the remaining packets did not time * out and we can stop processing the current queue */ @@ -622,6 +624,8 @@ static bool batadv_nc_fwd_flush(struct batadv_priv *bat_priv, { unsigned long timeout = bat_priv->nc.max_fwd_delay; + lockdep_assert_held(&nc_path->packet_list_lock); + /* Packets are added to tail, so the remaining packets did not time * out and we can stop processing the current queue */ |