net/e1000: correct VLAN tag byte order for i35x LB packets
authorRoger Melton <rmelton@cisco.com>
Thu, 12 Oct 2017 17:24:35 +0000 (13:24 -0400)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 26 Oct 2017 00:33:01 +0000 (02:33 +0200)
commit3ba62841c2ff2739b6cc34d29b6c6583ac872c93
tree7df1b341a0e7c7634a364eab806c8d4baf77bddf
parentfb870be5a879c6617fecabf47873ae2b576e6e69
net/e1000: correct VLAN tag byte order for i35x LB packets

When copying VLAN tags from the RX descriptor to the vlan_tci field
in the mbuf header,  igb_rxtx.c:eth_igb_recv_pkts() and
eth_igb_recv_scattered_pkts() both assume that the VLAN tag is always
little endian.  While i350, i354 and /i350vf VLAN non-loopback
packets are stored little endian, VLAN tags in loopback packets (LB)
for those devices are big endian.

For i350, i354 and i350vf VLAN loopback packets, swap the tag when
copying from the RX descriptor to the mbuf header.  This will ensure
that the mbuf vlan_tci is always little endian.

Signed-off-by: Roger Melton <rmelton@cisco.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/e1000/igb_rxtx.c