aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-06-01 12:44:01 -0400
committerJeff Garzik <jeff@garzik.org>2007-06-03 11:44:20 -0400
commit25805dcf9d83098cf5492117ad2669cd14cc9b24 (patch)
tree741134040babb0c2bce52d054fa5f08cf530449d /drivers
parentcb434e380d58d3956c75dc5ead00eced599b9d16 (diff)
network drivers: eliminate unneeded kill_vid code
Many drivers had code that did kill_vid, but they weren't doing vlan filtering. With new API the stub is unneeded unless device sets NETIF_F_HW_VLAN_FILTER. Bad habit: I couldn't resist fixing a couple of nearby style things in acenic, and forcedeth. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/acenic.c21
-rw-r--r--drivers/net/acenic.h1
-rw-r--r--drivers/net/amd8111e.c11
-rw-r--r--drivers/net/bnx2.c14
-rw-r--r--drivers/net/chelsio/cxgb2.c10
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c6
-rw-r--r--drivers/net/forcedeth.c8
-rw-r--r--drivers/net/gianfar.c16
-rw-r--r--drivers/net/ns83820.c12
-rw-r--r--drivers/net/r8169.c11
-rw-r--r--drivers/net/s2io.c12
-rw-r--r--drivers/net/spider_net.c40
-rw-r--r--drivers/net/tg3.c16
-rw-r--r--drivers/net/typhoon.c11
14 files changed, 6 insertions, 183 deletions
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 7122b7ba8d61..04382f979c99 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -480,12 +480,10 @@ static int __devinit acenic_probe_one(struct pci_dev *pdev,
480#if ACENIC_DO_VLAN 480#if ACENIC_DO_VLAN
481 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 481 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
482 dev->vlan_rx_register = ace_vlan_rx_register; 482 dev->vlan_rx_register = ace_vlan_rx_register;
483 dev->vlan_rx_kill_vid = ace_vlan_rx_kill_vid;
484#endif 483#endif
485 if (1) { 484
486 dev->tx_timeout = &ace_watchdog; 485 dev->tx_timeout = &ace_watchdog;
487 dev->watchdog_timeo = 5*HZ; 486 dev->watchdog_timeo = 5*HZ;
488 }
489 487
490 dev->open = &ace_open; 488 dev->open = &ace_open;
491 dev->stop = &ace_close; 489 dev->stop = &ace_close;
@@ -2283,19 +2281,6 @@ static void ace_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
2283 ace_unmask_irq(dev); 2281 ace_unmask_irq(dev);
2284 local_irq_restore(flags); 2282 local_irq_restore(flags);
2285} 2283}
2286
2287
2288static void ace_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
2289{
2290 struct ace_private *ap = netdev_priv(dev);
2291 unsigned long flags;
2292
2293 local_irq_save(flags);
2294 ace_mask_irq(dev);
2295 vlan_group_set_device(ap->vlgrp, vid, NULL);
2296 ace_unmask_irq(dev);
2297 local_irq_restore(flags);
2298}
2299#endif /* ACENIC_DO_VLAN */ 2284#endif /* ACENIC_DO_VLAN */
2300 2285
2301 2286
diff --git a/drivers/net/acenic.h b/drivers/net/acenic.h
index 8ca8534d70bf..60ed1837fa8f 100644
--- a/drivers/net/acenic.h
+++ b/drivers/net/acenic.h
@@ -787,7 +787,6 @@ static struct net_device_stats *ace_get_stats(struct net_device *dev);
787static int read_eeprom_byte(struct net_device *dev, unsigned long offset); 787static int read_eeprom_byte(struct net_device *dev, unsigned long offset);
788#if ACENIC_DO_VLAN 788#if ACENIC_DO_VLAN
789static void ace_vlan_rx_register(struct net_device *dev, struct vlan_group *grp); 789static void ace_vlan_rx_register(struct net_device *dev, struct vlan_group *grp);
790static void ace_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid);
791#endif 790#endif
792 791
793#endif /* _ACENIC_H_ */ 792#endif /* _ACENIC_H_ */
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 84b81642011c..a61b2f89fc33 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1728,15 +1728,8 @@ static void amd8111e_vlan_rx_register(struct net_device *dev, struct vlan_group
1728 lp->vlgrp = grp; 1728 lp->vlgrp = grp;
1729 spin_unlock_irq(&lp->lock); 1729 spin_unlock_irq(&lp->lock);
1730} 1730}
1731
1732static void amd8111e_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
1733{
1734 struct amd8111e_priv *lp = netdev_priv(dev);
1735 spin_lock_irq(&lp->lock);
1736 vlan_group_set_device(lp->vlgrp, vid, NULL);
1737 spin_unlock_irq(&lp->lock);
1738}
1739#endif 1731#endif
1732
1740static int amd8111e_enable_magicpkt(struct amd8111e_priv* lp) 1733static int amd8111e_enable_magicpkt(struct amd8111e_priv* lp)
1741{ 1734{
1742 writel( VAL1|MPPLBA, lp->mmio + CMD3); 1735 writel( VAL1|MPPLBA, lp->mmio + CMD3);
@@ -1996,7 +1989,6 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
1996#if AMD8111E_VLAN_TAG_USED 1989#if AMD8111E_VLAN_TAG_USED
1997 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ; 1990 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ;
1998 dev->vlan_rx_register =amd8111e_vlan_rx_register; 1991 dev->vlan_rx_register =amd8111e_vlan_rx_register;
1999 dev->vlan_rx_kill_vid = amd8111e_vlan_rx_kill_vid;
2000#endif 1992#endif
2001 1993
2002 lp = netdev_priv(dev); 1994 lp = netdev_priv(dev);
@@ -2049,7 +2041,6 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
2049#if AMD8111E_VLAN_TAG_USED 2041#if AMD8111E_VLAN_TAG_USED
2050 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 2042 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
2051 dev->vlan_rx_register =amd8111e_vlan_rx_register; 2043 dev->vlan_rx_register =amd8111e_vlan_rx_register;
2052 dev->vlan_rx_kill_vid = amd8111e_vlan_rx_kill_vid;
2053#endif 2044#endif
2054 /* Probe the external PHY */ 2045 /* Probe the external PHY */
2055 amd8111e_probe_ext_phy(dev); 2046 amd8111e_probe_ext_phy(dev);
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 88b33c6ddda8..da7c3b0c533c 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -4786,19 +4786,6 @@ bnx2_vlan_rx_register(struct net_device *dev, struct vlan_group *vlgrp)
4786 4786
4787 bnx2_netif_start(bp); 4787 bnx2_netif_start(bp);
4788} 4788}
4789
4790/* Called with rtnl_lock */
4791static void
4792bnx2_vlan_rx_kill_vid(struct net_device *dev, uint16_t vid)
4793{
4794 struct bnx2 *bp = netdev_priv(dev);
4795
4796 bnx2_netif_stop(bp);
4797 vlan_group_set_device(bp->vlgrp, vid, NULL);
4798 bnx2_set_rx_mode(dev);
4799
4800 bnx2_netif_start(bp);
4801}
4802#endif 4789#endif
4803 4790
4804/* Called with netif_tx_lock. 4791/* Called with netif_tx_lock.
@@ -6453,7 +6440,6 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
6453 dev->watchdog_timeo = TX_TIMEOUT; 6440 dev->watchdog_timeo = TX_TIMEOUT;
6454#ifdef BCM_VLAN 6441#ifdef BCM_VLAN
6455 dev->vlan_rx_register = bnx2_vlan_rx_register; 6442 dev->vlan_rx_register = bnx2_vlan_rx_register;
6456 dev->vlan_rx_kill_vid = bnx2_vlan_rx_kill_vid;
6457#endif 6443#endif
6458 dev->poll = bnx2_poll; 6444 dev->poll = bnx2_poll;
6459 dev->ethtool_ops = &bnx2_ethtool_ops; 6445 dev->ethtool_ops = &bnx2_ethtool_ops;
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index 125c9b105869..231ce43b97cf 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -883,15 +883,6 @@ static void vlan_rx_register(struct net_device *dev,
883 t1_set_vlan_accel(adapter, grp != NULL); 883 t1_set_vlan_accel(adapter, grp != NULL);
884 spin_unlock_irq(&adapter->async_lock); 884 spin_unlock_irq(&adapter->async_lock);
885} 885}
886
887static void vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
888{
889 struct adapter *adapter = dev->priv;
890
891 spin_lock_irq(&adapter->async_lock);
892 vlan_group_set_device(adapter->vlan_grp, vid, NULL);
893 spin_unlock_irq(&adapter->async_lock);
894}
895#endif 886#endif
896 887
897#ifdef CONFIG_NET_POLL_CONTROLLER 888#ifdef CONFIG_NET_POLL_CONTROLLER
@@ -1099,7 +1090,6 @@ static int __devinit init_one(struct pci_dev *pdev,
1099 netdev->features |= 1090 netdev->features |=
1100 NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 1091 NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
1101 netdev->vlan_rx_register = vlan_rx_register; 1092 netdev->vlan_rx_register = vlan_rx_register;
1102 netdev->vlan_rx_kill_vid = vlan_rx_kill_vid;
1103#endif 1093#endif
1104 1094
1105 /* T204: disable TSO */ 1095 /* T204: disable TSO */
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 67b4b219d927..1b20f4060e2d 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -2067,11 +2067,6 @@ static void vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
2067 t3_synchronize_rx(adapter, pi); 2067 t3_synchronize_rx(adapter, pi);
2068} 2068}
2069 2069
2070static void vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
2071{
2072 /* nothing */
2073}
2074
2075#ifdef CONFIG_NET_POLL_CONTROLLER 2070#ifdef CONFIG_NET_POLL_CONTROLLER
2076static void cxgb_netpoll(struct net_device *dev) 2071static void cxgb_netpoll(struct net_device *dev)
2077{ 2072{
@@ -2409,7 +2404,6 @@ static int __devinit init_one(struct pci_dev *pdev,
2409 2404
2410 netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 2405 netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
2411 netdev->vlan_rx_register = vlan_rx_register; 2406 netdev->vlan_rx_register = vlan_rx_register;
2412 netdev->vlan_rx_kill_vid = vlan_rx_kill_vid;
2413 2407
2414 netdev->open = cxgb_open; 2408 netdev->open = cxgb_open;
2415 netdev->stop = cxgb_close; 2409 netdev->stop = cxgb_close;
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 4154fd000746..32788ca40d25 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -4605,12 +4605,7 @@ static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
4605 writel(np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); 4605 writel(np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl);
4606 4606
4607 spin_unlock_irq(&np->lock); 4607 spin_unlock_irq(&np->lock);
4608}; 4608}
4609
4610static void nv_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
4611{
4612 /* nothing to do */
4613};
4614 4609
4615/* The mgmt unit and driver use a semaphore to access the phy during init */ 4610/* The mgmt unit and driver use a semaphore to access the phy during init */
4616static int nv_mgmt_acquire_sema(struct net_device *dev) 4611static int nv_mgmt_acquire_sema(struct net_device *dev)
@@ -4956,7 +4951,6 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
4956 np->vlanctl_bits = NVREG_VLANCONTROL_ENABLE; 4951 np->vlanctl_bits = NVREG_VLANCONTROL_ENABLE;
4957 dev->features |= NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX; 4952 dev->features |= NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX;
4958 dev->vlan_rx_register = nv_vlan_rx_register; 4953 dev->vlan_rx_register = nv_vlan_rx_register;
4959 dev->vlan_rx_kill_vid = nv_vlan_rx_kill_vid;
4960 } 4954 }
4961 4955
4962 np->msi_flags = 0; 4956 np->msi_flags = 0;
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index f5b3cba23fc5..6822bf14267b 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -140,7 +140,6 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit);
140static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb, int length); 140static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb, int length);
141static void gfar_vlan_rx_register(struct net_device *netdev, 141static void gfar_vlan_rx_register(struct net_device *netdev,
142 struct vlan_group *grp); 142 struct vlan_group *grp);
143static void gfar_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid);
144void gfar_halt(struct net_device *dev); 143void gfar_halt(struct net_device *dev);
145void gfar_start(struct net_device *dev); 144void gfar_start(struct net_device *dev);
146static void gfar_clear_exact_match(struct net_device *dev); 145static void gfar_clear_exact_match(struct net_device *dev);
@@ -284,7 +283,6 @@ static int gfar_probe(struct platform_device *pdev)
284 283
285 if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_VLAN) { 284 if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_VLAN) {
286 dev->vlan_rx_register = gfar_vlan_rx_register; 285 dev->vlan_rx_register = gfar_vlan_rx_register;
287 dev->vlan_rx_kill_vid = gfar_vlan_rx_kill_vid;
288 286
289 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 287 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
290 288
@@ -1133,20 +1131,6 @@ static void gfar_vlan_rx_register(struct net_device *dev,
1133 spin_unlock_irqrestore(&priv->rxlock, flags); 1131 spin_unlock_irqrestore(&priv->rxlock, flags);
1134} 1132}
1135 1133
1136
1137static void gfar_vlan_rx_kill_vid(struct net_device *dev, uint16_t vid)
1138{
1139 struct gfar_private *priv = netdev_priv(dev);
1140 unsigned long flags;
1141
1142 spin_lock_irqsave(&priv->rxlock, flags);
1143
1144 vlan_group_set_device(priv->vlgrp, vid, NULL);
1145
1146 spin_unlock_irqrestore(&priv->rxlock, flags);
1147}
1148
1149
1150static int gfar_change_mtu(struct net_device *dev, int new_mtu) 1134static int gfar_change_mtu(struct net_device *dev, int new_mtu)
1151{ 1135{
1152 int tempsize, tempval; 1136 int tempsize, tempval;
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index 3439f8c649f9..717d8e9b9833 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -506,17 +506,6 @@ static void ns83820_vlan_rx_register(struct net_device *ndev, struct vlan_group
506 spin_unlock(&dev->tx_lock); 506 spin_unlock(&dev->tx_lock);
507 spin_unlock_irq(&dev->misc_lock); 507 spin_unlock_irq(&dev->misc_lock);
508} 508}
509
510static void ns83820_vlan_rx_kill_vid(struct net_device *ndev, unsigned short vid)
511{
512 struct ns83820 *dev = PRIV(ndev);
513
514 spin_lock_irq(&dev->misc_lock);
515 spin_lock(&dev->tx_lock);
516 vlan_group_set_device(dev->vlgrp, vid, NULL);
517 spin_unlock(&dev->tx_lock);
518 spin_unlock_irq(&dev->misc_lock);
519}
520#endif 509#endif
521 510
522/* Packet Receiver 511/* Packet Receiver
@@ -2083,7 +2072,6 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, const struct pci_
2083 /* We also support hardware vlan acceleration */ 2072 /* We also support hardware vlan acceleration */
2084 ndev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 2073 ndev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
2085 ndev->vlan_rx_register = ns83820_vlan_rx_register; 2074 ndev->vlan_rx_register = ns83820_vlan_rx_register;
2086 ndev->vlan_rx_kill_vid = ns83820_vlan_rx_kill_vid;
2087#endif 2075#endif
2088 2076
2089 if (using_dac) { 2077 if (using_dac) {
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 45876a854f00..5ec7752caa48 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -886,16 +886,6 @@ static void rtl8169_vlan_rx_register(struct net_device *dev,
886 spin_unlock_irqrestore(&tp->lock, flags); 886 spin_unlock_irqrestore(&tp->lock, flags);
887} 887}
888 888
889static void rtl8169_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
890{
891 struct rtl8169_private *tp = netdev_priv(dev);
892 unsigned long flags;
893
894 spin_lock_irqsave(&tp->lock, flags);
895 vlan_group_set_device(tp->vlgrp, vid, NULL);
896 spin_unlock_irqrestore(&tp->lock, flags);
897}
898
899static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc, 889static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc,
900 struct sk_buff *skb) 890 struct sk_buff *skb)
901{ 891{
@@ -1671,7 +1661,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
1671#ifdef CONFIG_R8169_VLAN 1661#ifdef CONFIG_R8169_VLAN
1672 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 1662 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
1673 dev->vlan_rx_register = rtl8169_vlan_rx_register; 1663 dev->vlan_rx_register = rtl8169_vlan_rx_register;
1674 dev->vlan_rx_kill_vid = rtl8169_vlan_rx_kill_vid;
1675#endif 1664#endif
1676 1665
1677#ifdef CONFIG_NET_POLL_CONTROLLER 1666#ifdef CONFIG_NET_POLL_CONTROLLER
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index e3e6d410d72c..c6ba3dee8ae0 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -340,17 +340,6 @@ static void s2io_vlan_rx_register(struct net_device *dev,
340/* A flag indicating whether 'RX_PA_CFG_STRIP_VLAN_TAG' bit is set or not */ 340/* A flag indicating whether 'RX_PA_CFG_STRIP_VLAN_TAG' bit is set or not */
341static int vlan_strip_flag; 341static int vlan_strip_flag;
342 342
343/* Unregister the vlan */
344static void s2io_vlan_rx_kill_vid(struct net_device *dev, unsigned long vid)
345{
346 struct s2io_nic *nic = dev->priv;
347 unsigned long flags;
348
349 spin_lock_irqsave(&nic->tx_lock, flags);
350 vlan_group_set_device(nic->vlgrp, vid, NULL);
351 spin_unlock_irqrestore(&nic->tx_lock, flags);
352}
353
354/* 343/*
355 * Constants to be programmed into the Xena's registers, to configure 344 * Constants to be programmed into the Xena's registers, to configure
356 * the XAUI. 345 * the XAUI.
@@ -7412,7 +7401,6 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
7412 SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops); 7401 SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops);
7413 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 7402 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
7414 dev->vlan_rx_register = s2io_vlan_rx_register; 7403 dev->vlan_rx_register = s2io_vlan_rx_register;
7415 dev->vlan_rx_kill_vid = (void *)s2io_vlan_rx_kill_vid;
7416 7404
7417 /* 7405 /*
7418 * will use eth_mac_addr() for dev->set_mac_address 7406 * will use eth_mac_addr() for dev->set_mac_address
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index ef84d7c757a0..b47ad1df2e0c 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1191,43 +1191,6 @@ spider_net_poll(struct net_device *netdev, int *budget)
1191} 1191}
1192 1192
1193/** 1193/**
1194 * spider_net_vlan_rx_reg - initializes VLAN structures in the driver and card
1195 * @netdev: interface device structure
1196 * @grp: vlan_group structure that is registered (NULL on destroying interface)
1197 */
1198static void
1199spider_net_vlan_rx_reg(struct net_device *netdev, struct vlan_group *grp)
1200{
1201 /* further enhancement... yet to do */
1202 return;
1203}
1204
1205/**
1206 * spider_net_vlan_rx_add - adds VLAN id to the card filter
1207 * @netdev: interface device structure
1208 * @vid: VLAN id to add
1209 */
1210static void
1211spider_net_vlan_rx_add(struct net_device *netdev, uint16_t vid)
1212{
1213 /* further enhancement... yet to do */
1214 /* add vid to card's VLAN filter table */
1215 return;
1216}
1217
1218/**
1219 * spider_net_vlan_rx_kill - removes VLAN id to the card filter
1220 * @netdev: interface device structure
1221 * @vid: VLAN id to remove
1222 */
1223static void
1224spider_net_vlan_rx_kill(struct net_device *netdev, uint16_t vid)
1225{
1226 /* further enhancement... yet to do */
1227 /* remove vid from card's VLAN filter table */
1228}
1229
1230/**
1231 * spider_net_get_stats - get interface statistics 1194 * spider_net_get_stats - get interface statistics
1232 * @netdev: interface device structure 1195 * @netdev: interface device structure
1233 * 1196 *
@@ -2177,9 +2140,6 @@ spider_net_setup_netdev_ops(struct net_device *netdev)
2177 netdev->poll = &spider_net_poll; 2140 netdev->poll = &spider_net_poll;
2178 netdev->weight = SPIDER_NET_NAPI_WEIGHT; 2141 netdev->weight = SPIDER_NET_NAPI_WEIGHT;
2179 /* HW VLAN */ 2142 /* HW VLAN */
2180 netdev->vlan_rx_register = &spider_net_vlan_rx_reg;
2181 netdev->vlan_rx_add_vid = &spider_net_vlan_rx_add;
2182 netdev->vlan_rx_kill_vid = &spider_net_vlan_rx_kill;
2183#ifdef CONFIG_NET_POLL_CONTROLLER 2143#ifdef CONFIG_NET_POLL_CONTROLLER
2184 /* poll controller */ 2144 /* poll controller */
2185 netdev->poll_controller = &spider_net_poll_controller; 2145 netdev->poll_controller = &spider_net_poll_controller;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 923b9c725cc3..023779a581fd 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -9121,21 +9121,6 @@ static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
9121 if (netif_running(dev)) 9121 if (netif_running(dev))
9122 tg3_netif_start(tp); 9122 tg3_netif_start(tp);
9123} 9123}
9124
9125static void tg3_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
9126{
9127 struct tg3 *tp = netdev_priv(dev);
9128
9129 if (netif_running(dev))
9130 tg3_netif_stop(tp);
9131
9132 tg3_full_lock(tp, 0);
9133 vlan_group_set_device(tp->vlgrp, vid, NULL);
9134 tg3_full_unlock(tp);
9135
9136 if (netif_running(dev))
9137 tg3_netif_start(tp);
9138}
9139#endif 9124#endif
9140 9125
9141static int tg3_get_coalesce(struct net_device *dev, struct ethtool_coalesce *ec) 9126static int tg3_get_coalesce(struct net_device *dev, struct ethtool_coalesce *ec)
@@ -11778,7 +11763,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
11778#if TG3_VLAN_TAG_USED 11763#if TG3_VLAN_TAG_USED
11779 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; 11764 dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
11780 dev->vlan_rx_register = tg3_vlan_rx_register; 11765 dev->vlan_rx_register = tg3_vlan_rx_register;
11781 dev->vlan_rx_kill_vid = tg3_vlan_rx_kill_vid;
11782#endif 11766#endif
11783 11767
11784 tp = netdev_priv(dev); 11768 tp = netdev_priv(dev);
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index f72573594121..15b2fb8aa492 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -741,15 +741,6 @@ typhoon_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
741 spin_unlock_bh(&tp->state_lock); 741 spin_unlock_bh(&tp->state_lock);
742} 742}
743 743
744static void
745typhoon_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
746{
747 struct typhoon *tp = netdev_priv(dev);
748 spin_lock_bh(&tp->state_lock);
749 vlan_group_set_device(tp->vlgrp, vid, NULL);
750 spin_unlock_bh(&tp->state_lock);
751}
752
753static inline void 744static inline void
754typhoon_tso_fill(struct sk_buff *skb, struct transmit_ring *txRing, 745typhoon_tso_fill(struct sk_buff *skb, struct transmit_ring *txRing,
755 u32 ring_dma) 746 u32 ring_dma)
@@ -2542,7 +2533,7 @@ typhoon_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2542 dev->get_stats = typhoon_get_stats; 2533 dev->get_stats = typhoon_get_stats;
2543 dev->set_mac_address = typhoon_set_mac_address; 2534 dev->set_mac_address = typhoon_set_mac_address;
2544 dev->vlan_rx_register = typhoon_vlan_rx_register; 2535 dev->vlan_rx_register = typhoon_vlan_rx_register;
2545 dev->vlan_rx_kill_vid = typhoon_vlan_rx_kill_vid; 2536
2546 SET_ETHTOOL_OPS(dev, &typhoon_ethtool_ops); 2537 SET_ETHTOOL_OPS(dev, &typhoon_ethtool_ops);
2547 2538
2548 /* We can handle scatter gather, up to 16 entries, and 2539 /* We can handle scatter gather, up to 16 entries, and