[commits] [batman-adv] next: batman-adv: fix lockdep splat when doing mcast_free (025b743)

postmaster at open-mesh.org postmaster at open-mesh.org
Wed Dec 30 12:59:45 CET 2015


Repository : ssh://git@open-mesh.org/batman-adv

On branch  : next

>---------------------------------------------------------------

commit 025b743f6474bfdcd765a16ec6b098d06a40bf87
Author: Simon Wunderlich <simon at open-mesh.com>
Date:   Mon Nov 30 17:34:01 2015 +0100

    batman-adv: fix lockdep splat when doing mcast_free
    
    While testing, we got something like this:
    
    WARNING: CPU: 0 PID: 238 at net/batman-adv/multicast.c:142 batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]()
    [...]
    Call Trace:
    [<ffffffff815fc597>] dump_stack+0x4b/0x64
    [<ffffffff810b34dc>] warn_slowpath_common+0xbc/0x120
    [<ffffffffa0024ec5>] ? batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]
    [<ffffffff810b3705>] warn_slowpath_null+0x15/0x20
    [<ffffffffa0024ec5>] batadv_mcast_mla_tt_retract+0x94/0x205 [batman_adv]
    [<ffffffffa00273fe>] batadv_mcast_free+0x36/0x39 [batman_adv]
    [<ffffffffa0020c77>] batadv_mesh_free+0x7d/0x13f [batman_adv]
    [<ffffffffa0036a6b>] batadv_softif_free+0x15/0x25 [batman_adv]
    [...]
    
    Signed-off-by: Simon Wunderlich <simon at open-mesh.com>
    Signed-off-by: Marek Lindner <mareklindner at neomailbox.ch>


>---------------------------------------------------------------

025b743f6474bfdcd765a16ec6b098d06a40bf87
 net/batman-adv/multicast.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/batman-adv/multicast.c b/net/batman-adv/multicast.c
index 8abf488..d984eee 100644
--- a/net/batman-adv/multicast.c
+++ b/net/batman-adv/multicast.c
@@ -801,7 +801,9 @@ void batadv_mcast_free(struct batadv_priv *bat_priv)
 	batadv_tvlv_container_unregister(bat_priv, BATADV_TVLV_MCAST, 1);
 	batadv_tvlv_handler_unregister(bat_priv, BATADV_TVLV_MCAST, 1);
 
+	spin_lock_bh(&bat_priv->tt.commit_lock);
 	batadv_mcast_mla_tt_retract(bat_priv, NULL);
+	spin_unlock_bh(&bat_priv->tt.commit_lock);
 }
 
 /**



More information about the commits mailing list