Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / drivers / net / ns83820.c
index 3e4040f..e736aec 100644 (file)
 #include <linux/delay.h>
 #include <linux/workqueue.h>
 #include <linux/init.h>
+#include <linux/interrupt.h>
 #include <linux/ip.h>  /* for iph */
 #include <linux/in.h>  /* for IPPROTO_... */
 #include <linux/compiler.h>
@@ -429,10 +430,6 @@ struct ns83820 {
        struct pci_dev          *pci_dev;
        struct net_device       *ndev;
 
-#ifdef NS83820_VLAN_ACCEL_SUPPORT
-       struct vlan_group       *vlgrp;
-#endif
-
        struct rx_info          rx_info;
        struct tasklet_struct   rx_tasklet;
 
@@ -493,22 +490,6 @@ static inline void kick_rx(struct net_device *ndev)
 #define start_tx_okay(dev)     \
        (((NR_TX_DESC-2 + dev->tx_done_idx - dev->tx_free_idx) % NR_TX_DESC) > MIN_TX_DESC_FREE)
 
-
-#ifdef NS83820_VLAN_ACCEL_SUPPORT
-static void ns83820_vlan_rx_register(struct net_device *ndev, struct vlan_group *grp)
-{
-       struct ns83820 *dev = PRIV(ndev);
-
-       spin_lock_irq(&dev->misc_lock);
-       spin_lock(&dev->tx_lock);
-
-       dev->vlgrp = grp;
-
-       spin_unlock(&dev->tx_lock);
-       spin_unlock_irq(&dev->misc_lock);
-}
-#endif
-
 /* Packet Receiver
  *
  * The hardware supports linked lists of receive descriptors for
@@ -929,14 +910,12 @@ static void rx_irq(struct net_device *ndev)
 #ifdef NS83820_VLAN_ACCEL_SUPPORT
                        if(extsts & EXTSTS_VPKT) {
                                unsigned short tag;
+
                                tag = ntohs(extsts & EXTSTS_VTG_MASK);
-                               rx_rc = vlan_hwaccel_rx(skb,dev->vlgrp,tag);
-                       } else {
-                               rx_rc = netif_rx(skb);
+                               __vlan_hwaccel_put_tag(skb, tag);
                        }
-#else
-                       rx_rc = netif_rx(skb);
 #endif
+                       rx_rc = netif_rx(skb);
                        if (NET_RX_DROP == rx_rc) {
 netdev_mangle_me_harder_failed:
                                ndev->stats.rx_dropped++;
@@ -1960,11 +1939,8 @@ static const struct net_device_ops netdev_ops = {
        .ndo_change_mtu         = ns83820_change_mtu,
        .ndo_set_multicast_list = ns83820_set_multicast,
        .ndo_validate_addr      = eth_validate_addr,
-       .ndo_set_mac_address    = eth_mac_addr,
+       .ndo_set_mac_address    = eth_mac_addr,
        .ndo_tx_timeout         = ns83820_tx_timeout,
-#ifdef NS83820_VLAN_ACCEL_SUPPORT
-       .ndo_vlan_rx_register   = ns83820_vlan_rx_register,
-#endif
 };
 
 static int __devinit ns83820_init_one(struct pci_dev *pci_dev,