mvneta: Fix TSO and checksum for non-acceleration vlan traffic
authorVlad Yasevich <vyasevich@gmail.com>
Mon, 25 Aug 2014 14:34:54 +0000 (10:34 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 Aug 2014 00:27:10 +0000 (17:27 -0700)
commit817dbfa5d1bc276a72c1a577310382008e8aca0a
tree2813ef1a4959c86314ea8d3bf37fad55b143a38d
parenta12c415834cc335ae015ba104e78c3fb35ec9be9
mvneta: Fix TSO and checksum for non-acceleration vlan traffic

This driver doesn't appear to support vlan acceleration at
all.  However, it does claim to support TSO and IP checksums
for vlan devices.  Thus any configured vlan device would
end up passing down partial checksums or TSO frames.

The driver also uses the value from skb->protocol to
determine TSO and checksum offload information, but assumes
that skb->protocol holds the l3 protocol information.
As a result, vlan traffic with partial checksums or TSO
will fail those checks and TSO will not happen.

Fix this by using vlan_get_protocol() helper.

CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvneta.c