bridge: vlan: don't pass flags when creating context only
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Wed, 30 Sep 2015 18:16:55 +0000 (20:16 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Oct 2015 01:24:05 +0000 (18:24 -0700)
We should not pass the original flags when creating a context vlan only
because they may contain some flags that change behaviour in the bridge.
The new global context should be with minimal set of flags, so pass 0
and let br_vlan_add() set the master flag only.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_vlan.c

index 7e9d60a402e20648684c9c224efa2726443ffd30..75214a51cf0e05582f8f3b556ae4f74343dc24ca 100644 (file)
@@ -197,7 +197,7 @@ static int __vlan_add(struct net_bridge_vlan *v, u16 flags)
                masterv = br_vlan_find(br->vlgrp, v->vid);
                if (!masterv) {
                        /* missing global ctx, create it now */
-                       err = br_vlan_add(br, v->vid, master_flags);
+                       err = br_vlan_add(br, v->vid, 0);
                        if (err)
                                goto out_filt;
                        masterv = br_vlan_find(br->vlgrp, v->vid);