summaryrefslogtreecommitdiffstats
path: root/sys/dev/e1000/if_em.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2012-01-05 17:30:15 +0000
committerrwatson <rwatson@FreeBSD.org>2012-01-05 17:30:15 +0000
commitf3e5fe871847a53747d7120dd4762ee4311662f2 (patch)
tree66bb30156c3141ab27370ef6bf028315a73b0539 /sys/dev/e1000/if_em.c
parent501817ac5ecf2fc947d7fbacf2db18c647e59efb (diff)
downloadFreeBSD-src-f3e5fe871847a53747d7120dd4762ee4311662f2.zip
FreeBSD-src-f3e5fe871847a53747d7120dd4762ee4311662f2.tar.gz
When extracting the VLAN tag from if_em and if_lem receive descriptor
rings, copy the whole VLAN tag, not just the VLAN ID. This fixes a problem in which VLAN priority information was dropped when using offloaded VLAN processing with these drivers. Discussed with: jfv, rrs Sponsored by: ADARA Networks, Inc. MFC after: 3 days
Diffstat (limited to 'sys/dev/e1000/if_em.c')
-rw-r--r--sys/dev/e1000/if_em.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 3d21da3..f6cc363 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -4480,8 +4480,7 @@ em_rxeof(struct rx_ring *rxr, int count, int *done)
#endif
if (status & E1000_RXD_STAT_VP) {
sendmp->m_pkthdr.ether_vtag =
- (le16toh(cur->special) &
- E1000_RXD_SPC_VLAN_MASK);
+ le16toh(cur->special);
sendmp->m_flags |= M_VLANTAG;
}
#ifndef __NO_STRICT_ALIGNMENT
OpenPOWER on IntegriCloud