From: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Date: Wed, 30 Sep 2015 18:16:55 +0000 (+0200)
Subject: bridge: vlan: don't pass flags when creating context only
X-Git-Tag: firefly_0821_release~176^2~818^2~240^2
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=248234ca029710fbad6423c48f98c2a6ea9582fb;p=firefly-linux-kernel-4.4.55.git

bridge: vlan: don't pass flags when creating context only

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>
---

diff --git a/net/bridge/br_vlan.c b/net/bridge/br_vlan.c
index 7e9d60a402e2..75214a51cf0e 100644
--- a/net/bridge/br_vlan.c
+++ b/net/bridge/br_vlan.c
@@ -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);