6060#define BAR_0 0
6161#define BAR_2 2
6262
63- #if defined(CONFIG_VLAN_8021Q ) || defined(CONFIG_VLAN_8021Q_MODULE )
64- #define TG3_VLAN_TAG_USED 1
65- #else
66- #define TG3_VLAN_TAG_USED 0
67- #endif
68-
6963#include "tg3.h"
7064
7165#define DRV_MODULE_NAME "tg3"
134128 TG3_TX_RING_SIZE)
135129#define NEXT_TX (N ) (((N) + 1) & (TG3_TX_RING_SIZE - 1))
136130
137- #define TG3_RX_DMA_ALIGN 16
138- #define TG3_RX_HEADROOM ALIGN(VLAN_HLEN, TG3_RX_DMA_ALIGN)
139-
140131#define TG3_DMA_BYTE_ENAB 64
141132
142133#define TG3_RX_STD_DMA_SZ 1536
@@ -4722,8 +4713,6 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
47224713 struct sk_buff * skb ;
47234714 dma_addr_t dma_addr ;
47244715 u32 opaque_key , desc_idx , * post_ptr ;
4725- bool hw_vlan __maybe_unused = false;
4726- u16 vtag __maybe_unused = 0 ;
47274716
47284717 desc_idx = desc -> opaque & RXD_OPAQUE_INDEX_MASK ;
47294718 opaque_key = desc -> opaque & RXD_OPAQUE_RING_MASK ;
@@ -4782,12 +4771,12 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
47824771 tg3_recycle_rx (tnapi , tpr , opaque_key ,
47834772 desc_idx , * post_ptr );
47844773
4785- copy_skb = netdev_alloc_skb (tp -> dev , len + VLAN_HLEN +
4774+ copy_skb = netdev_alloc_skb (tp -> dev , len +
47864775 TG3_RAW_IP_ALIGN );
47874776 if (copy_skb == NULL )
47884777 goto drop_it_no_recycle ;
47894778
4790- skb_reserve (copy_skb , TG3_RAW_IP_ALIGN + VLAN_HLEN );
4779+ skb_reserve (copy_skb , TG3_RAW_IP_ALIGN );
47914780 skb_put (copy_skb , len );
47924781 pci_dma_sync_single_for_cpu (tp -> pdev , dma_addr , len , PCI_DMA_FROMDEVICE );
47934782 skb_copy_from_linear_data (skb , copy_skb -> data , len );
@@ -4814,30 +4803,11 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
48144803 }
48154804
48164805 if (desc -> type_flags & RXD_FLAG_VLAN &&
4817- !(tp -> rx_mode & RX_MODE_KEEP_VLAN_TAG )) {
4818- vtag = desc -> err_vlan & RXD_VLAN_MASK ;
4819- #if TG3_VLAN_TAG_USED
4820- if (tp -> vlgrp )
4821- hw_vlan = true;
4822- else
4823- #endif
4824- {
4825- struct vlan_ethhdr * ve = (struct vlan_ethhdr * )
4826- __skb_push (skb , VLAN_HLEN );
4827-
4828- memmove (ve , skb -> data + VLAN_HLEN ,
4829- ETH_ALEN * 2 );
4830- ve -> h_vlan_proto = htons (ETH_P_8021Q );
4831- ve -> h_vlan_TCI = htons (vtag );
4832- }
4833- }
4806+ !(tp -> rx_mode & RX_MODE_KEEP_VLAN_TAG ))
4807+ __vlan_hwaccel_put_tag (skb ,
4808+ desc -> err_vlan & RXD_VLAN_MASK );
48344809
4835- #if TG3_VLAN_TAG_USED
4836- if (hw_vlan )
4837- vlan_gro_receive (& tnapi -> napi , tp -> vlgrp , vtag , skb );
4838- else
4839- #endif
4840- napi_gro_receive (& tnapi -> napi , skb );
4810+ napi_gro_receive (& tnapi -> napi , skb );
48414811
48424812 received ++ ;
48434813 budget -- ;
@@ -5740,11 +5710,9 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb,
57405710 base_flags |= TXD_FLAG_TCPUDP_CSUM ;
57415711 }
57425712
5743- #if TG3_VLAN_TAG_USED
57445713 if (vlan_tx_tag_present (skb ))
57455714 base_flags |= (TXD_FLAG_VLAN |
57465715 (vlan_tx_tag_get (skb ) << 16 ));
5747- #endif
57485716
57495717 len = skb_headlen (skb );
57505718
@@ -5986,11 +5954,10 @@ static netdev_tx_t tg3_start_xmit_dma_bug(struct sk_buff *skb,
59865954 }
59875955 }
59885956 }
5989- #if TG3_VLAN_TAG_USED
5957+
59905958 if (vlan_tx_tag_present (skb ))
59915959 base_flags |= (TXD_FLAG_VLAN |
59925960 (vlan_tx_tag_get (skb ) << 16 ));
5993- #endif
59945961
59955962 if ((tp -> tg3_flags3 & TG3_FLG3_USE_JUMBO_BDFLAG ) &&
59965963 !mss && skb -> len > VLAN_ETH_FRAME_LEN )
@@ -9532,17 +9499,10 @@ static void __tg3_set_rx_mode(struct net_device *dev)
95329499 rx_mode = tp -> rx_mode & ~(RX_MODE_PROMISC |
95339500 RX_MODE_KEEP_VLAN_TAG );
95349501
9502+ #if !defined(CONFIG_VLAN_8021Q ) && !defined(CONFIG_VLAN_8021Q_MODULE )
95359503 /* When ASF is in use, we always keep the RX_MODE_KEEP_VLAN_TAG
95369504 * flag clear.
95379505 */
9538- #if TG3_VLAN_TAG_USED
9539- if (!tp -> vlgrp &&
9540- !(tp -> tg3_flags & TG3_FLAG_ENABLE_ASF ))
9541- rx_mode |= RX_MODE_KEEP_VLAN_TAG ;
9542- #else
9543- /* By definition, VLAN is disabled always in this
9544- * case.
9545- */
95469506 if (!(tp -> tg3_flags & TG3_FLAG_ENABLE_ASF ))
95479507 rx_mode |= RX_MODE_KEEP_VLAN_TAG ;
95489508#endif
@@ -11230,31 +11190,6 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
1123011190 return - EOPNOTSUPP ;
1123111191}
1123211192
11233- #if TG3_VLAN_TAG_USED
11234- static void tg3_vlan_rx_register (struct net_device * dev , struct vlan_group * grp )
11235- {
11236- struct tg3 * tp = netdev_priv (dev );
11237-
11238- if (!netif_running (dev )) {
11239- tp -> vlgrp = grp ;
11240- return ;
11241- }
11242-
11243- tg3_netif_stop (tp );
11244-
11245- tg3_full_lock (tp , 0 );
11246-
11247- tp -> vlgrp = grp ;
11248-
11249- /* Update RX_MODE_KEEP_VLAN_TAG bit in RX_MODE register. */
11250- __tg3_set_rx_mode (dev );
11251-
11252- tg3_netif_start (tp );
11253-
11254- tg3_full_unlock (tp );
11255- }
11256- #endif
11257-
1125811193static int tg3_get_coalesce (struct net_device * dev , struct ethtool_coalesce * ec )
1125911194{
1126011195 struct tg3 * tp = netdev_priv (dev );
@@ -13066,9 +13001,7 @@ static struct pci_dev * __devinit tg3_find_peer(struct tg3 *);
1306613001
1306713002static void inline vlan_features_add (struct net_device * dev , unsigned long flags )
1306813003{
13069- #if TG3_VLAN_TAG_USED
1307013004 dev -> vlan_features |= flags ;
13071- #endif
1307213005}
1307313006
1307413007static inline u32 tg3_rx_ret_ring_size (struct tg3 * tp )
@@ -13861,11 +13794,11 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
1386113794 else
1386213795 tp -> tg3_flags &= ~TG3_FLAG_POLL_SERDES ;
1386313796
13864- tp -> rx_offset = NET_IP_ALIGN + TG3_RX_HEADROOM ;
13797+ tp -> rx_offset = NET_IP_ALIGN ;
1386513798 tp -> rx_copy_thresh = TG3_RX_COPY_THRESHOLD ;
1386613799 if (GET_ASIC_REV (tp -> pci_chip_rev_id ) == ASIC_REV_5701 &&
1386713800 (tp -> tg3_flags & TG3_FLAG_PCIX_MODE ) != 0 ) {
13868- tp -> rx_offset -= NET_IP_ALIGN ;
13801+ tp -> rx_offset = 0 ;
1386913802#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
1387013803 tp -> rx_copy_thresh = ~(u16 )0 ;
1387113804#endif
@@ -14629,9 +14562,6 @@ static const struct net_device_ops tg3_netdev_ops = {
1462914562 .ndo_do_ioctl = tg3_ioctl ,
1463014563 .ndo_tx_timeout = tg3_tx_timeout ,
1463114564 .ndo_change_mtu = tg3_change_mtu ,
14632- #if TG3_VLAN_TAG_USED
14633- .ndo_vlan_rx_register = tg3_vlan_rx_register ,
14634- #endif
1463514565#ifdef CONFIG_NET_POLL_CONTROLLER
1463614566 .ndo_poll_controller = tg3_poll_controller ,
1463714567#endif
@@ -14648,9 +14578,6 @@ static const struct net_device_ops tg3_netdev_ops_dma_bug = {
1464814578 .ndo_do_ioctl = tg3_ioctl ,
1464914579 .ndo_tx_timeout = tg3_tx_timeout ,
1465014580 .ndo_change_mtu = tg3_change_mtu ,
14651- #if TG3_VLAN_TAG_USED
14652- .ndo_vlan_rx_register = tg3_vlan_rx_register ,
14653- #endif
1465414581#ifdef CONFIG_NET_POLL_CONTROLLER
1465514582 .ndo_poll_controller = tg3_poll_controller ,
1465614583#endif
@@ -14700,9 +14627,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
1470014627
1470114628 SET_NETDEV_DEV (dev , & pdev -> dev );
1470214629
14703- #if TG3_VLAN_TAG_USED
1470414630 dev -> features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX ;
14705- #endif
1470614631
1470714632 tp = netdev_priv (dev );
1470814633 tp -> pdev = pdev ;
0 commit comments