diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-03 15:41:05 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-03 15:41:05 -0400 |
| commit | c1a13ff57ab1ce52a0aae9984594dbfcfbaf68c0 (patch) | |
| tree | c9f99adf0c1940ab0daeb2c3287152e49b096679 | |
| parent | 7dfb1716d717e41c07410bab52760d865caee12b (diff) | |
| parent | beaf53bff7985ad57b5b6983f3d6142380449370 (diff) | |
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
NET: add MAINTAINERS entry for ucc_geth driver
myri10ge: report link up/down in standard ethtool way
NetXen: Removal of extra free_irq call
Update tulip maintainer email address
smc91x: sh solution engine fixes.
e1000: disable polling before registering netdevice
network drivers: eliminate unneeded kill_vid code
atl1: eliminate unneeded kill_vid code
8139cp: fix VLAN unregistration
sky2: Fix VLAN unregistration
VLAN: kill_vid is only useful for VLAN filtering devices
qla3xxx: device doesnt do hardware checksumming.
| -rw-r--r-- | MAINTAINERS | 9 | ||||
| -rw-r--r-- | drivers/net/8139cp.c | 17 | ||||
| -rw-r--r-- | drivers/net/acenic.c | 21 | ||||
| -rw-r--r-- | drivers/net/acenic.h | 1 | ||||
| -rw-r--r-- | drivers/net/amd8111e.c | 11 | ||||
| -rw-r--r-- | drivers/net/atl1/atl1_main.c | 33 | ||||
| -rw-r--r-- | drivers/net/bnx2.c | 14 | ||||
| -rw-r--r-- | drivers/net/chelsio/cxgb2.c | 10 | ||||
| -rw-r--r-- | drivers/net/cxgb3/cxgb3_main.c | 6 | ||||
| -rw-r--r-- | drivers/net/e1000/e1000_main.c | 11 | ||||
| -rw-r--r-- | drivers/net/forcedeth.c | 8 | ||||
| -rw-r--r-- | drivers/net/gianfar.c | 16 | ||||
| -rw-r--r-- | drivers/net/myri10ge/myri10ge.c | 1 | ||||
| -rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 2 | ||||
| -rw-r--r-- | drivers/net/ns83820.c | 12 | ||||
| -rwxr-xr-x | drivers/net/qla3xxx.c | 2 | ||||
| -rw-r--r-- | drivers/net/r8169.c | 11 | ||||
| -rw-r--r-- | drivers/net/s2io.c | 12 | ||||
| -rw-r--r-- | drivers/net/sky2.c | 31 | ||||
| -rw-r--r-- | drivers/net/smc91x.h | 5 | ||||
| -rw-r--r-- | drivers/net/spider_net.c | 40 | ||||
| -rw-r--r-- | drivers/net/tg3.c | 16 | ||||
| -rw-r--r-- | drivers/net/typhoon.c | 11 | ||||
| -rw-r--r-- | net/8021q/vlan.c | 10 |
24 files changed, 45 insertions, 265 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 124b9508ae2e..f3b5a391e074 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -1487,6 +1487,13 @@ L: linux-usb-devel@lists.sourceforge.net | |||
| 1487 | L: linuxppc-embedded@ozlabs.org | 1487 | L: linuxppc-embedded@ozlabs.org |
| 1488 | S: Maintained | 1488 | S: Maintained |
| 1489 | 1489 | ||
| 1490 | FREESCALE QUICC ENGINE UCC ETHERNET DRIVER | ||
| 1491 | P: Li Yang | ||
| 1492 | M: leoli@freescale.com | ||
| 1493 | L: netdev@vger.kernel.org | ||
| 1494 | L: linuxppc-embedded@ozlabs.org | ||
| 1495 | S: Maintained | ||
| 1496 | |||
| 1490 | FILE LOCKING (flock() and fcntl()/lockf()) | 1497 | FILE LOCKING (flock() and fcntl()/lockf()) |
| 1491 | P: Matthew Wilcox | 1498 | P: Matthew Wilcox |
| 1492 | M: matthew@wil.cx | 1499 | M: matthew@wil.cx |
| @@ -3545,7 +3552,7 @@ S: Maintained | |||
| 3545 | 3552 | ||
| 3546 | TULIP NETWORK DRIVER | 3553 | TULIP NETWORK DRIVER |
| 3547 | P: Valerie Henson | 3554 | P: Valerie Henson |
| 3548 | M: val_henson@linux.intel.com | 3555 | M: val@nmt.edu |
| 3549 | L: tulip-users@lists.sourceforge.net | 3556 | L: tulip-users@lists.sourceforge.net |
| 3550 | W: http://sourceforge.net/projects/tulip/ | 3557 | W: http://sourceforge.net/projects/tulip/ |
| 3551 | S: Maintained | 3558 | S: Maintained |
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c index e8c9f27817b0..a804965e6542 100644 --- a/drivers/net/8139cp.c +++ b/drivers/net/8139cp.c | |||
| @@ -435,20 +435,12 @@ static void cp_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) | |||
| 435 | 435 | ||
| 436 | spin_lock_irqsave(&cp->lock, flags); | 436 | spin_lock_irqsave(&cp->lock, flags); |
| 437 | cp->vlgrp = grp; | 437 | cp->vlgrp = grp; |
| 438 | cp->cpcmd |= RxVlanOn; | 438 | if (grp) |
| 439 | cpw16(CpCmd, cp->cpcmd); | 439 | cp->cpcmd |= RxVlanOn; |
| 440 | spin_unlock_irqrestore(&cp->lock, flags); | 440 | else |
| 441 | } | 441 | cp->cpcmd &= ~RxVlanOn; |
| 442 | |||
| 443 | static void cp_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) | ||
| 444 | { | ||
| 445 | struct cp_private *cp = netdev_priv(dev); | ||
| 446 | unsigned long flags; | ||
| 447 | 442 | ||
| 448 | spin_lock_irqsave(&cp->lock, flags); | ||
| 449 | cp->cpcmd &= ~RxVlanOn; | ||
| 450 | cpw16(CpCmd, cp->cpcmd); | 443 | cpw16(CpCmd, cp->cpcmd); |
| 451 | vlan_group_set_device(cp->vlgrp, vid, NULL); | ||
| 452 | spin_unlock_irqrestore(&cp->lock, flags); | 444 | spin_unlock_irqrestore(&cp->lock, flags); |
| 453 | } | 445 | } |
| 454 | #endif /* CP_VLAN_TAG_USED */ | 446 | #endif /* CP_VLAN_TAG_USED */ |
| @@ -1944,7 +1936,6 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) | |||
| 1944 | #if CP_VLAN_TAG_USED | 1936 | #if CP_VLAN_TAG_USED |
| 1945 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 1937 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; |
| 1946 | dev->vlan_rx_register = cp_vlan_rx_register; | 1938 | dev->vlan_rx_register = cp_vlan_rx_register; |
| 1947 | dev->vlan_rx_kill_vid = cp_vlan_rx_kill_vid; | ||
| 1948 | #endif | 1939 | #endif |
| 1949 | 1940 | ||
| 1950 | if (pci_using_dac) | 1941 | if (pci_using_dac) |
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 | |||
| 2288 | static 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); | |||
| 787 | static int read_eeprom_byte(struct net_device *dev, unsigned long offset); | 787 | static int read_eeprom_byte(struct net_device *dev, unsigned long offset); |
| 788 | #if ACENIC_DO_VLAN | 788 | #if ACENIC_DO_VLAN |
| 789 | static void ace_vlan_rx_register(struct net_device *dev, struct vlan_group *grp); | 789 | static void ace_vlan_rx_register(struct net_device *dev, struct vlan_group *grp); |
| 790 | static 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 | |||
| 1732 | static 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 | |||
| 1740 | static int amd8111e_enable_magicpkt(struct amd8111e_priv* lp) | 1733 | static 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/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index 78cf00ff3d38..6862c11ff864 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c | |||
| @@ -1229,39 +1229,9 @@ static void atl1_vlan_rx_register(struct net_device *netdev, | |||
| 1229 | spin_unlock_irqrestore(&adapter->lock, flags); | 1229 | spin_unlock_irqrestore(&adapter->lock, flags); |
| 1230 | } | 1230 | } |
| 1231 | 1231 | ||
| 1232 | /* FIXME: justify or remove -- CHS */ | ||
| 1233 | static void atl1_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | ||
| 1234 | { | ||
| 1235 | /* We don't do Vlan filtering */ | ||
| 1236 | return; | ||
| 1237 | } | ||
| 1238 | |||
| 1239 | /* FIXME: this looks wrong too -- CHS */ | ||
| 1240 | static void atl1_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | ||
| 1241 | { | ||
| 1242 | struct atl1_adapter *adapter = netdev_priv(netdev); | ||
| 1243 | unsigned long flags; | ||
| 1244 | |||
| 1245 | spin_lock_irqsave(&adapter->lock, flags); | ||
| 1246 | /* atl1_irq_disable(adapter); */ | ||
| 1247 | vlan_group_set_device(adapter->vlgrp, vid, NULL); | ||
| 1248 | /* atl1_irq_enable(adapter); */ | ||
| 1249 | spin_unlock_irqrestore(&adapter->lock, flags); | ||
| 1250 | /* We don't do Vlan filtering */ | ||
| 1251 | return; | ||
| 1252 | } | ||
| 1253 | |||
| 1254 | static void atl1_restore_vlan(struct atl1_adapter *adapter) | 1232 | static void atl1_restore_vlan(struct atl1_adapter *adapter) |
| 1255 | { | 1233 | { |
| 1256 | atl1_vlan_rx_register(adapter->netdev, adapter->vlgrp); | 1234 | atl1_vlan_rx_register(adapter->netdev, adapter->vlgrp); |
| 1257 | if (adapter->vlgrp) { | ||
| 1258 | u16 vid; | ||
| 1259 | for (vid = 0; vid < VLAN_GROUP_ARRAY_LEN; vid++) { | ||
| 1260 | if (!vlan_group_get_device(adapter->vlgrp, vid)) | ||
| 1261 | continue; | ||
| 1262 | atl1_vlan_rx_add_vid(adapter->netdev, vid); | ||
| 1263 | } | ||
| 1264 | } | ||
| 1265 | } | 1235 | } |
| 1266 | 1236 | ||
| 1267 | static u16 tpd_avail(struct atl1_tpd_ring *tpd_ring) | 1237 | static u16 tpd_avail(struct atl1_tpd_ring *tpd_ring) |
| @@ -2203,8 +2173,7 @@ static int __devinit atl1_probe(struct pci_dev *pdev, | |||
| 2203 | netdev->poll_controller = atl1_poll_controller; | 2173 | netdev->poll_controller = atl1_poll_controller; |
| 2204 | #endif | 2174 | #endif |
| 2205 | netdev->vlan_rx_register = atl1_vlan_rx_register; | 2175 | netdev->vlan_rx_register = atl1_vlan_rx_register; |
| 2206 | netdev->vlan_rx_add_vid = atl1_vlan_rx_add_vid; | 2176 | |
| 2207 | netdev->vlan_rx_kill_vid = atl1_vlan_rx_kill_vid; | ||
| 2208 | netdev->ethtool_ops = &atl1_ethtool_ops; | 2177 | netdev->ethtool_ops = &atl1_ethtool_ops; |
| 2209 | adapter->bd_number = cards_found; | 2178 | adapter->bd_number = cards_found; |
| 2210 | adapter->pci_using_64 = pci_using_64; | 2179 | adapter->pci_using_64 = pci_using_64; |
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 */ | ||
| 4791 | static void | ||
| 4792 | bnx2_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 | |||
| 887 | static 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 | ||
| 2070 | static 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 |
| 2076 | static void cxgb_netpoll(struct net_device *dev) | 2071 | static 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/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 9ec35b7a8207..cf8af928a69c 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
| @@ -1142,13 +1142,16 @@ e1000_probe(struct pci_dev *pdev, | |||
| 1142 | !e1000_check_mng_mode(&adapter->hw)) | 1142 | !e1000_check_mng_mode(&adapter->hw)) |
| 1143 | e1000_get_hw_control(adapter); | 1143 | e1000_get_hw_control(adapter); |
| 1144 | 1144 | ||
| 1145 | strcpy(netdev->name, "eth%d"); | ||
| 1146 | if ((err = register_netdev(netdev))) | ||
| 1147 | goto err_register; | ||
| 1148 | |||
| 1149 | /* tell the stack to leave us alone until e1000_open() is called */ | 1145 | /* tell the stack to leave us alone until e1000_open() is called */ |
| 1150 | netif_carrier_off(netdev); | 1146 | netif_carrier_off(netdev); |
| 1151 | netif_stop_queue(netdev); | 1147 | netif_stop_queue(netdev); |
| 1148 | #ifdef CONFIG_E1000_NAPI | ||
| 1149 | netif_poll_disable(netdev); | ||
| 1150 | #endif | ||
| 1151 | |||
| 1152 | strcpy(netdev->name, "eth%d"); | ||
| 1153 | if ((err = register_netdev(netdev))) | ||
| 1154 | goto err_register; | ||
| 1152 | 1155 | ||
| 1153 | DPRINTK(PROBE, INFO, "Intel(R) PRO/1000 Network Connection\n"); | 1156 | DPRINTK(PROBE, INFO, "Intel(R) PRO/1000 Network Connection\n"); |
| 1154 | 1157 | ||
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 | |||
| 4610 | static 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 */ |
| 4616 | static int nv_mgmt_acquire_sema(struct net_device *dev) | 4611 | static 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); | |||
| 140 | static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb, int length); | 140 | static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb, int length); |
| 141 | static void gfar_vlan_rx_register(struct net_device *netdev, | 141 | static void gfar_vlan_rx_register(struct net_device *netdev, |
| 142 | struct vlan_group *grp); | 142 | struct vlan_group *grp); |
| 143 | static void gfar_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid); | ||
| 144 | void gfar_halt(struct net_device *dev); | 143 | void gfar_halt(struct net_device *dev); |
| 145 | void gfar_start(struct net_device *dev); | 144 | void gfar_start(struct net_device *dev); |
| 146 | static void gfar_clear_exact_match(struct net_device *dev); | 145 | static 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 | |||
| 1137 | static 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 | |||
| 1150 | static int gfar_change_mtu(struct net_device *dev, int new_mtu) | 1134 | static 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/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 5d14be7405a3..b53b7ad999bc 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c | |||
| @@ -1472,6 +1472,7 @@ static const struct ethtool_ops myri10ge_ethtool_ops = { | |||
| 1472 | .set_sg = ethtool_op_set_sg, | 1472 | .set_sg = ethtool_op_set_sg, |
| 1473 | .get_tso = ethtool_op_get_tso, | 1473 | .get_tso = ethtool_op_get_tso, |
| 1474 | .set_tso = ethtool_op_set_tso, | 1474 | .set_tso = ethtool_op_set_tso, |
| 1475 | .get_link = ethtool_op_get_link, | ||
| 1475 | .get_strings = myri10ge_get_strings, | 1476 | .get_strings = myri10ge_get_strings, |
| 1476 | .get_stats_count = myri10ge_get_stats_count, | 1477 | .get_stats_count = myri10ge_get_stats_count, |
| 1477 | .get_ethtool_stats = myri10ge_get_ethtool_stats, | 1478 | .get_ethtool_stats = myri10ge_get_ethtool_stats, |
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 2c5c6d20e6e9..c61181f23bd5 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
| @@ -654,8 +654,6 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev) | |||
| 654 | if (adapter->portnum == 0) | 654 | if (adapter->portnum == 0) |
| 655 | netxen_free_adapter_offload(adapter); | 655 | netxen_free_adapter_offload(adapter); |
| 656 | 656 | ||
| 657 | if (adapter->irq) | ||
| 658 | free_irq(adapter->irq, adapter); | ||
| 659 | if(adapter->portnum == 0) { | 657 | if(adapter->portnum == 0) { |
| 660 | /* leave the hw in the same state as reboot */ | 658 | /* leave the hw in the same state as reboot */ |
| 661 | writel(0, NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); | 659 | writel(0, NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)); |
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 | |||
| 510 | static 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/qla3xxx.c b/drivers/net/qla3xxx.c index d8766c0e8255..585be044ebbb 100755 --- a/drivers/net/qla3xxx.c +++ b/drivers/net/qla3xxx.c | |||
| @@ -4044,7 +4044,7 @@ static int __devinit ql3xxx_probe(struct pci_dev *pdev, | |||
| 4044 | if (pci_using_dac) | 4044 | if (pci_using_dac) |
| 4045 | ndev->features |= NETIF_F_HIGHDMA; | 4045 | ndev->features |= NETIF_F_HIGHDMA; |
| 4046 | if (qdev->device_id == QL3032_DEVICE_ID) | 4046 | if (qdev->device_id == QL3032_DEVICE_ID) |
| 4047 | ndev->features |= (NETIF_F_HW_CSUM | NETIF_F_SG); | 4047 | ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG; |
| 4048 | 4048 | ||
| 4049 | qdev->mem_map_registers = | 4049 | qdev->mem_map_registers = |
| 4050 | ioremap_nocache(pci_resource_start(pdev, 1), | 4050 | ioremap_nocache(pci_resource_start(pdev, 1), |
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 | ||
| 889 | static 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 | |||
| 899 | static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc, | 889 | static 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 */ |
| 341 | static int vlan_strip_flag; | 341 | static int vlan_strip_flag; |
| 342 | 342 | ||
| 343 | /* Unregister the vlan */ | ||
| 344 | static 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/sky2.c b/drivers/net/sky2.c index adfbe81693a6..fe01b961b597 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
| @@ -1049,26 +1049,22 @@ static void sky2_vlan_rx_register(struct net_device *dev, struct vlan_group *grp | |||
| 1049 | u16 port = sky2->port; | 1049 | u16 port = sky2->port; |
| 1050 | 1050 | ||
| 1051 | netif_tx_lock_bh(dev); | 1051 | netif_tx_lock_bh(dev); |
| 1052 | netif_poll_disable(sky2->hw->dev[0]); | ||
| 1052 | 1053 | ||
| 1053 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), RX_VLAN_STRIP_ON); | ||
| 1054 | sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), TX_VLAN_TAG_ON); | ||
| 1055 | sky2->vlgrp = grp; | 1054 | sky2->vlgrp = grp; |
| 1055 | if (grp) { | ||
| 1056 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), | ||
| 1057 | RX_VLAN_STRIP_ON); | ||
| 1058 | sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), | ||
| 1059 | TX_VLAN_TAG_ON); | ||
| 1060 | } else { | ||
| 1061 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), | ||
| 1062 | RX_VLAN_STRIP_OFF); | ||
| 1063 | sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), | ||
| 1064 | TX_VLAN_TAG_OFF); | ||
| 1065 | } | ||
| 1056 | 1066 | ||
| 1057 | netif_tx_unlock_bh(dev); | 1067 | netif_poll_enable(sky2->hw->dev[0]); |
| 1058 | } | ||
| 1059 | |||
| 1060 | static void sky2_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) | ||
| 1061 | { | ||
| 1062 | struct sky2_port *sky2 = netdev_priv(dev); | ||
| 1063 | struct sky2_hw *hw = sky2->hw; | ||
| 1064 | u16 port = sky2->port; | ||
| 1065 | |||
| 1066 | netif_tx_lock_bh(dev); | ||
| 1067 | |||
| 1068 | sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), RX_VLAN_STRIP_OFF); | ||
| 1069 | sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), TX_VLAN_TAG_OFF); | ||
| 1070 | vlan_group_set_device(sky2->vlgrp, vid, NULL); | ||
| 1071 | |||
| 1072 | netif_tx_unlock_bh(dev); | 1068 | netif_tx_unlock_bh(dev); |
| 1073 | } | 1069 | } |
| 1074 | #endif | 1070 | #endif |
| @@ -3484,7 +3480,6 @@ static __devinit struct net_device *sky2_init_netdev(struct sky2_hw *hw, | |||
| 3484 | #ifdef SKY2_VLAN_TAG_USED | 3480 | #ifdef SKY2_VLAN_TAG_USED |
| 3485 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | 3481 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; |
| 3486 | dev->vlan_rx_register = sky2_vlan_rx_register; | 3482 | dev->vlan_rx_register = sky2_vlan_rx_register; |
| 3487 | dev->vlan_rx_kill_vid = sky2_vlan_rx_kill_vid; | ||
| 3488 | #endif | 3483 | #endif |
| 3489 | 3484 | ||
| 3490 | /* read the mac address */ | 3485 | /* read the mac address */ |
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h index 111f23d05764..506bffcbc6dc 100644 --- a/drivers/net/smc91x.h +++ b/drivers/net/smc91x.h | |||
| @@ -281,17 +281,14 @@ SMC_outw(u16 val, void __iomem *ioaddr, int reg) | |||
| 281 | 281 | ||
| 282 | #elif defined(CONFIG_SUPERH) | 282 | #elif defined(CONFIG_SUPERH) |
| 283 | 283 | ||
| 284 | #if defined(CONFIG_SH_7780_SOLUTION_ENGINE) || defined(CONFIG_SH_7722_SOLUTION_ENGINE) | 284 | #ifdef CONFIG_SOLUTION_ENGINE |
| 285 | #define SMC_CAN_USE_8BIT 0 | 285 | #define SMC_CAN_USE_8BIT 0 |
| 286 | #define SMC_CAN_USE_16BIT 1 | 286 | #define SMC_CAN_USE_16BIT 1 |
| 287 | #define SMC_CAN_USE_32BIT 0 | 287 | #define SMC_CAN_USE_32BIT 0 |
| 288 | #define SMC_IO_SHIFT 0 | 288 | #define SMC_IO_SHIFT 0 |
| 289 | #define SMC_NOWAIT 1 | 289 | #define SMC_NOWAIT 1 |
| 290 | 290 | ||
| 291 | #define SMC_inb(a, r) (inw((a) + ((r)&~1)) >> (8*(r%2)))&0xff | ||
| 292 | #define SMC_inw(a, r) inw((a) + (r)) | 291 | #define SMC_inw(a, r) inw((a) + (r)) |
| 293 | #define SMC_outb(v, a, r) outw(((inw((a)+((r)&~1))*(0xff<<8*(r%2)))) | ((v)<<(8*(r&2)))), (a) + ((r)&~1)) | ||
| 294 | |||
| 295 | #define SMC_outw(v, a, r) outw(v, (a) + (r)) | 292 | #define SMC_outw(v, a, r) outw(v, (a) + (r)) |
| 296 | #define SMC_insw(a, r, p, l) insw((a) + (r), p, l) | 293 | #define SMC_insw(a, r, p, l) insw((a) + (r), p, l) |
| 297 | #define SMC_outsw(a, r, p, l) outsw((a) + (r), p, l) | 294 | #define SMC_outsw(a, r, p, l) outsw((a) + (r), p, l) |
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 | */ | ||
| 1198 | static void | ||
| 1199 | spider_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 | */ | ||
| 1210 | static void | ||
| 1211 | spider_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 | */ | ||
| 1223 | static void | ||
| 1224 | spider_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 | |||
| 9125 | static 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 | ||
| 9141 | static int tg3_get_coalesce(struct net_device *dev, struct ethtool_coalesce *ec) | 9126 | static 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 | ||
| 744 | static void | ||
| 745 | typhoon_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 | |||
| 753 | static inline void | 744 | static inline void |
| 754 | typhoon_tso_fill(struct sk_buff *skb, struct transmit_ring *txRing, | 745 | typhoon_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 |
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index bd93c45778d4..ceef57c9ab32 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
| @@ -240,10 +240,8 @@ static int unregister_vlan_dev(struct net_device *real_dev, | |||
| 240 | * interlock with HW accelerating devices or SW vlan | 240 | * interlock with HW accelerating devices or SW vlan |
| 241 | * input packet processing. | 241 | * input packet processing. |
| 242 | */ | 242 | */ |
| 243 | if (real_dev->features & | 243 | if (real_dev->features & NETIF_F_HW_VLAN_FILTER) |
| 244 | (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER)) { | ||
| 245 | real_dev->vlan_rx_kill_vid(real_dev, vlan_id); | 244 | real_dev->vlan_rx_kill_vid(real_dev, vlan_id); |
| 246 | } | ||
| 247 | 245 | ||
| 248 | vlan_group_set_device(grp, vlan_id, NULL); | 246 | vlan_group_set_device(grp, vlan_id, NULL); |
| 249 | synchronize_net(); | 247 | synchronize_net(); |
| @@ -409,16 +407,14 @@ static struct net_device *register_vlan_device(const char *eth_IF_name, | |||
| 409 | } | 407 | } |
| 410 | 408 | ||
| 411 | if ((real_dev->features & NETIF_F_HW_VLAN_RX) && | 409 | if ((real_dev->features & NETIF_F_HW_VLAN_RX) && |
| 412 | (real_dev->vlan_rx_register == NULL || | 410 | !real_dev->vlan_rx_register) { |
| 413 | real_dev->vlan_rx_kill_vid == NULL)) { | ||
| 414 | printk(VLAN_DBG "%s: Device %s has buggy VLAN hw accel.\n", | 411 | printk(VLAN_DBG "%s: Device %s has buggy VLAN hw accel.\n", |
| 415 | __FUNCTION__, real_dev->name); | 412 | __FUNCTION__, real_dev->name); |
| 416 | goto out_put_dev; | 413 | goto out_put_dev; |
| 417 | } | 414 | } |
| 418 | 415 | ||
| 419 | if ((real_dev->features & NETIF_F_HW_VLAN_FILTER) && | 416 | if ((real_dev->features & NETIF_F_HW_VLAN_FILTER) && |
| 420 | (real_dev->vlan_rx_add_vid == NULL || | 417 | (!real_dev->vlan_rx_add_vid || !real_dev->vlan_rx_kill_vid)) { |
| 421 | real_dev->vlan_rx_kill_vid == NULL)) { | ||
| 422 | printk(VLAN_DBG "%s: Device %s has buggy VLAN hw accel.\n", | 418 | printk(VLAN_DBG "%s: Device %s has buggy VLAN hw accel.\n", |
| 423 | __FUNCTION__, real_dev->name); | 419 | __FUNCTION__, real_dev->name); |
| 424 | goto out_put_dev; | 420 | goto out_put_dev; |
