bridge: vlan: Use rcu_dereference instead of rtnl_dereference
authorIdo Schimmel <idosch@mellanox.com>
Sun, 1 Nov 2015 16:31:45 +0000 (18:31 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Nov 2015 21:27:39 +0000 (16:27 -0500)
br_should_learn() is protected by RCU and not by RTNL, so use correct
flavor of nbp_vlan_group().

Fixes: 907b1e6e83ed ("bridge: vlan: use proper rcu for the vlgrp
member")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_vlan.c

index dc1a2da55d095c27c1512bebfc481ccb61ed7ca3..1394da63614a1d8a325ef44d5fa17849b5d82294 100644 (file)
@@ -482,7 +482,7 @@ bool br_should_learn(struct net_bridge_port *p, struct sk_buff *skb, u16 *vid)
        if (!br->vlan_enabled)
                return true;
 
-       vg = nbp_vlan_group(p);
+       vg = nbp_vlan_group_rcu(p);
        if (!vg || !vg->num_vlans)
                return false;