diff options
author | David S. Miller <davem@davemloft.net> | 2015-11-02 15:40:11 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-11-02 15:40:11 -0500 |
commit | 21086b990ba51d12670eba342eec76d4bba55d33 (patch) | |
tree | 1a20ed79515da4b5b6c6c13e753d9e27a844c2c3 | |
parent | ce1050089c969b96c797118f9cb0cf5a421ddc69 (diff) | |
parent | ddd611d3fffb90b967e50f5aa6d45d55eb0e1d3f (diff) | |
download | linux-21086b990ba51d12670eba342eec76d4bba55d33.tar.gz linux-21086b990ba51d12670eba342eec76d4bba55d33.tar.bz2 linux-21086b990ba51d12670eba342eec76d4bba55d33.zip |
Merge branch 'bridge_vlan_fixes'
Nikolay Aleksandrov says:
====================
bridge: vlan: failure path and comment fixes
This is a set from Ido which takes care of one failure path error in
nbp_vlan_init (patch 1) and a few comment errors (patch 2).
I must admit I didn't expect the port init continues after a vlan init
failure but should've checked to make sure. Thanks to Ido for catching
these!
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/bridge/br_vlan.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c index 5f0d0cc4744f..dc1a2da55d09 100644 --- a/net/bridge/br_vlan.c +++ b/net/bridge/br_vlan.c @@ -180,11 +180,11 @@ static void br_vlan_put_master(struct net_bridge_vlan *masterv) * devices. There are four possible calls to this function in terms of the * vlan entry type: * 1. vlan is being added on a port (no master flags, global entry exists) - * 2. vlan is being added on a bridge (both master and brvlan flags) + * 2. vlan is being added on a bridge (both master and brentry flags) * 3. vlan is being added on a port, but a global entry didn't exist which - * is being created right now (master flag set, brvlan flag unset), the + * is being created right now (master flag set, brentry flag unset), the * global entry is used for global per-vlan features, but not for filtering - * 4. same as 3 but with both master and brvlan flags set so the entry + * 4. same as 3 but with both master and brentry flags set so the entry * will be used for filtering in both the port and the bridge */ static int __vlan_add(struct net_bridge_vlan *v, u16 flags) @@ -914,6 +914,8 @@ out: return ret; err_vlan_add: + RCU_INIT_POINTER(p->vlgrp, NULL); + synchronize_rcu(); rhashtable_destroy(&vg->vlan_hash); err_rhtbl: kfree(vg); |