Google
  Web www.spinics.net

[PATCH 04/06]: ixgb: don't truncate VLAN TCI with VLAN stripping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Patrick McHardy wrote:
These patches fix all drivers supporting VLAN header stripping to
pass the complete VLAN TCI to vlan_hwaccel_{rx,receive_skb} instead
of just the VID. The upper three bits contain the priority and are
used for ingress priority mappings.

The e1000 patch is runtime tested, the others only compile tested.


 drivers/net/e1000/e1000_main.c |   12 ++++--------
 drivers/net/e1000e/netdev.c    |    3 +--
 drivers/net/igb/igb_main.c     |    3 +--
 drivers/net/ixgb/ixgb_main.c   |    6 ++----
 drivers/net/starfire.c         |    2 +-
 drivers/net/tehuti.c           |    2 +-
 drivers/net/tehuti.h           |    1 +
 7 files changed, 11 insertions(+), 18 deletions(-)

Patrick McHardy (6):
      e1000: don't truncate VLAN TCI with VLAN stripping
      e1000e: don't truncate VLAN TCI with VLAN stripping
      igb: don't truncate VLAN TCI with VLAN stripping
      ixgb: don't truncate VLAN TCI with VLAN stripping
      starfire: don't truncate VLAN TCI with VLAN stripping
      tehuti: don't truncate VLAN TCI with VLAN stripping


ixgb: don't truncate VLAN TCI with VLAN stripping

The vlan_hwaccel_{rx,receive_skb} functions expect the full TCI field
for priority mappings, don't truncate the upper 4 bits.

Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>

---
commit 92c22c36d1e18c443bbbe0097c005ebc94e82a4f
tree 55cbe321e6dde27e06e1cec6bc6a73ae8ab14608
parent 4295edfa0ab04aff6be3c396e58cb5033aa729bc
author Patrick McHardy <kaber@xxxxxxxxx> Mon, 07 Jul 2008 00:25:14 +0200
committer Patrick McHardy <kaber@xxxxxxxxx> Mon, 07 Jul 2008 00:25:14 +0200

 drivers/net/ixgb/ixgb_main.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index cb8dadd..41f3adf 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -2045,16 +2045,14 @@ ixgb_clean_rx_irq(struct ixgb_adapter *adapter)
 #ifdef CONFIG_IXGB_NAPI
 		if(adapter->vlgrp && (status & IXGB_RX_DESC_STATUS_VP)) {
 			vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
-				le16_to_cpu(rx_desc->special) &
-					IXGB_RX_DESC_SPECIAL_VLAN_MASK);
+				le16_to_cpu(rx_desc->special));
 		} else {
 			netif_receive_skb(skb);
 		}
 #else /* CONFIG_IXGB_NAPI */
 		if(adapter->vlgrp && (status & IXGB_RX_DESC_STATUS_VP)) {
 			vlan_hwaccel_rx(skb, adapter->vlgrp,
-				le16_to_cpu(rx_desc->special) &
-					IXGB_RX_DESC_SPECIAL_VLAN_MASK);
+				le16_to_cpu(rx_desc->special));
 		} else {
 			netif_rx(skb);
 		}


[Kernel List]     [Site Home]     [Ethernet Bridging]     [Git]     [IETF Annouce]     [Linux Assembly]     [VLAN]     [Networking]     [Security]     [Bugtraq]     [Rubini]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Virtualization]     [Linux Security]     [Linux IDE]     [Linux RAID]     [Linux SCSI]     [Linux Wireless]     [DDR & Rambus]     [Free Dating]     [Linux Resources]     [Wireless Reading Device]

Add to Google Powered by Linux