diff mbox

[net-next,v1] 8021q: fix vlan device to inherit the unicast filtering capability flag

Message ID 20121128234520.6615.41220.stg.yi.zou@intel.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Yi Zou Nov. 28, 2012, 11:45 p.m. UTC
This bug is observed on running FCoE over a VLAN device associated w/
a real device that has IFF_UNICAST_FLT set since FCoE would add unicast
address such as FLOGI MAC to the VLAN interface that FCoE is on. Since
currently, VLAN device is not inheriting the IFF_UNICAST_FLT flag from the
parent real device even though the real device is capable of doing unicast
filtering. This forces the VLAN device and its real device go to promiscuous
mode unnecessarily even the added address is actually being added to the
available unicast filter table in real device.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Cc: devel@open-fcoe.org
---

 net/8021q/vlan.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Miller Nov. 30, 2012, 5:09 p.m. UTC | #1
From: Yi Zou <yi.zou@intel.com>
Date: Wed, 28 Nov 2012 15:45:24 -0800

> This bug is observed on running FCoE over a VLAN device associated w/
> a real device that has IFF_UNICAST_FLT set since FCoE would add unicast
> address such as FLOGI MAC to the VLAN interface that FCoE is on. Since
> currently, VLAN device is not inheriting the IFF_UNICAST_FLT flag from the
> parent real device even though the real device is capable of doing unicast
> filtering. This forces the VLAN device and its real device go to promiscuous
> mode unnecessarily even the added address is actually being added to the
> available unicast filter table in real device.
> 
> Signed-off-by: Yi Zou <yi.zou@intel.com>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index ee07072..ca03c17 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -242,6 +242,7 @@  static int register_vlan_device(struct net_device *real_dev, u16 vlan_id)
 	 * hope the underlying device can handle it.
 	 */
 	new_dev->mtu = real_dev->mtu;
+	new_dev->priv_flags |= (real_dev->priv_flags & IFF_UNICAST_FLT);
 
 	vlan_dev_priv(new_dev)->vlan_id = vlan_id;
 	vlan_dev_priv(new_dev)->real_dev = real_dev;