OpenCloudOS-Kernel/drivers/net/ethernet/intel/e1000e
Vlad Yasevich 47ccd1edc5 e1000e: Fix TSO with non-accelerated vlans
This device claims  TSO support for vlans.  It also allows a
user to control vlan acceleration offloading.  As such, it is
possible to turn off vlan acceleration and configure a vlan
which will continue to support TSO.

In such situation the packet passed down the the device will contain
a vlan header and skb->protocol will be set to ETH_P_8021Q.
The device assumes that skb->protocol contains network protocol
value and uses that value to set up TSO information.  This results
in corrupted frames sent on the wire.  Corruptions include
incorrect IP total length and invalid IP checksum.

This patch extract the protocol value correctly and corrects TSO
for non-accelerated traffic.

CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
CC: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Bruce Allan <bruce.w.allan@intel.com>
CC: Carolyn Wyborny <carolyn.wyborny@intel.com>
CC: Don Skidmore <donald.c.skidmore@intel.com>
CC: Greg Rose <gregory.v.rose@intel.com>
CC: Alex Duyck <alexander.h.duyck@intel.com>
CC: John Ronciak <john.ronciak@intel.com>
CC: Mitch Williams <mitch.a.williams@intel.com>
CC: Linux NICS <linux.nics@intel.com>
CC: e1000-devel@lists.sourceforge.net
Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-25 17:27:09 -07:00
..
80003es2lan.c e1000e: Failure to write SHRA turns on PROMISC mode 2014-05-26 23:53:11 -07:00
80003es2lan.h e1000e: Cleanup - Update GPL header and Copyright 2014-03-07 21:55:27 -08:00
82571.c e1000e: remove unnecessary break after return 2014-07-20 21:30:18 -07:00
82571.h e1000e: Cleanup - Update GPL header and Copyright 2014-03-07 21:55:27 -08:00
Makefile e1000e: Cleanup - Update GPL header and Copyright 2014-03-07 21:55:27 -08:00
defines.h e1000e: Fix CRC errors with jumbo traffic 2014-07-25 20:43:29 -07:00
e1000.h e1000e: Out of line __ew32_prepare/__ew32 2014-05-27 02:10:44 -07:00
ethtool.c e1000e: remove unnecessary break after return 2014-07-20 21:30:18 -07:00
hw.h e1000e: Failure to write SHRA turns on PROMISC mode 2014-05-26 23:53:11 -07:00
ich8lan.c e1000e: Add support for EEE in Sx states 2014-07-25 21:00:54 -07:00
ich8lan.h e1000e: Add support for EEE in Sx states 2014-07-25 21:00:54 -07:00
mac.c e1000e: remove unnecessary break after return 2014-07-20 21:30:18 -07:00
mac.h e1000e: Failure to write SHRA turns on PROMISC mode 2014-05-26 23:53:11 -07:00
manage.c e1000e: delete excessive space character in debug message 2014-08-12 01:16:19 -07:00
manage.h e1000e: Cleanup - Update GPL header and Copyright 2014-03-07 21:55:27 -08:00
netdev.c e1000e: Fix TSO with non-accelerated vlans 2014-08-25 17:27:09 -07:00
nvm.c e1000e: Add code to check return values on NVM accesses 2014-07-25 20:51:00 -07:00
nvm.h e1000e: Cleanup - Update GPL header and Copyright 2014-03-07 21:55:27 -08:00
param.c e1000e: Cleanup to fix checkpatch missing blank lines 2014-04-23 01:05:08 -07:00
phy.c e1000e: Cleanup to fix checkpatch missing blank lines 2014-04-23 01:05:08 -07:00
phy.h e1000e: Workaround for dropped packets in Gig/100 speeds on 82579 2014-05-05 12:54:33 -07:00
ptp.c ptp: drivers: set the number of programmable pins. 2014-03-21 14:21:14 -04:00
regs.h e1000e: Feature Enable PHY Ultra Low Power Mode (ULP) 2014-03-07 22:52:07 -08:00