aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Reversat <a.reversat@gmail.com>2011-06-16 06:47:13 -0400
committerDavid S. Miller <davem@conan.davemloft.net>2011-06-17 00:12:51 -0400
commite3cb78c772de593afa720687ce3abbed8d93b0c3 (patch)
treef3dd770ba7325757d6a4c580e04106a9a57c8e0e
parenta1b7f85e4f632f9cc342d8a34a3903feaf47a261 (diff)
vlan: don't call ndo_vlan_rx_register on hardware that doesn't have vlan support
This patch removes the call to ndo_vlan_rx_register if the underlying device doesn't have hardware support for VLAN. Signed-off-by: Antoine Reversat <a.reversat@gmail.com> Signed-off-by: David S. Miller <davem@conan.davemloft.net>
-rw-r--r--net/8021q/vlan.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index c7a581a96894..917ecb93ea28 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -205,7 +205,7 @@ int register_vlan_dev(struct net_device *dev)
205 grp->nr_vlans++; 205 grp->nr_vlans++;
206 206
207 if (ngrp) { 207 if (ngrp) {
208 if (ops->ndo_vlan_rx_register) 208 if (ops->ndo_vlan_rx_register && (real_dev->features & NETIF_F_HW_VLAN_RX))
209 ops->ndo_vlan_rx_register(real_dev, ngrp); 209 ops->ndo_vlan_rx_register(real_dev, ngrp);
210 rcu_assign_pointer(real_dev->vlgrp, ngrp); 210 rcu_assign_pointer(real_dev->vlgrp, ngrp);
211 } 211 }