]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/amd8111e.c
amd8111e: do vlan cleanup
[mv-sheeva.git] / drivers / net / amd8111e.c
index db6d2da5a8f30dad7b413380396d94e51f88ee9f..78002ef9c0e56f13a7bcc0a0a5fce56fc4bbb2ad 100644 (file)
@@ -661,15 +661,6 @@ static void amd8111e_free_ring(struct amd8111e_priv* lp)
        }
 
 }
-#if AMD8111E_VLAN_TAG_USED
-/*
-This is the receive indication function for packets with vlan tag.
-*/
-static int amd8111e_vlan_rx(struct amd8111e_priv *lp, struct sk_buff *skb, u16 vlan_tag)
-{
-       return vlan_hwaccel_receive_skb(skb, lp->vlgrp,vlan_tag);
-}
-#endif
 
 /*
 This function will free all the transmit skbs that are actually transmitted by the device. It will check the ownership of the skb before freeing the skb.
@@ -764,7 +755,7 @@ static int amd8111e_rx_poll(struct napi_struct *napi, int budget)
 #if AMD8111E_VLAN_TAG_USED
                        vtag = status & TT_MASK;
                        /*MAC will strip vlan tag*/
-                       if(lp->vlgrp != NULL && vtag !=0)
+                       if (vtag != 0)
                                min_pkt_len =MIN_PKT_LEN - 4;
                        else
 #endif
@@ -799,12 +790,12 @@ static int amd8111e_rx_poll(struct napi_struct *napi, int budget)
                        skb->protocol = eth_type_trans(skb, dev);
 
 #if AMD8111E_VLAN_TAG_USED
-                       if(lp->vlgrp != NULL && (vtag == TT_VLAN_TAGGED)){
-                               amd8111e_vlan_rx(lp, skb,
-                                        le16_to_cpu(lp->rx_ring[rx_index].tag_ctrl_info));
-                       } else
+                       if (vtag == TT_VLAN_TAGGED){
+                               u16 vlan_tag = le16_to_cpu(lp->rx_ring[rx_index].tag_ctrl_info);
+                               __vlan_hwaccel_put_tag(skb, vlan_tag);
+                       }
 #endif
-                               netif_receive_skb(skb);
+                       netif_receive_skb(skb);
                        /*COAL update rx coalescing parameters*/
                        lp->coal_conf.rx_packets++;
                        lp->coal_conf.rx_bytes += pkt_len;
@@ -1598,16 +1589,6 @@ static int amd8111e_change_mtu(struct net_device *dev, int new_mtu)
        return err;
 }
 
-#if AMD8111E_VLAN_TAG_USED
-static void amd8111e_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
-{
-       struct  amd8111e_priv *lp = netdev_priv(dev);
-       spin_lock_irq(&lp->lock);
-       lp->vlgrp = grp;
-       spin_unlock_irq(&lp->lock);
-}
-#endif
-
 static int amd8111e_enable_magicpkt(struct amd8111e_priv* lp)
 {
        writel( VAL1|MPPLBA, lp->mmio + CMD3);
@@ -1822,9 +1803,6 @@ static const struct net_device_ops amd8111e_netdev_ops = {
        .ndo_set_mac_address    = amd8111e_set_mac_address,
        .ndo_do_ioctl           = amd8111e_ioctl,
        .ndo_change_mtu         = amd8111e_change_mtu,
-#if AMD8111E_VLAN_TAG_USED
-       .ndo_vlan_rx_register   = amd8111e_vlan_rx_register,
-#endif
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller     = amd8111e_poll,
 #endif