net: mvpp2: Extract the correct ethtype from the skb for tx csum offload
authorMaxime Chevallier <maxime.chevallier@bootlin.com>
Fri, 5 Oct 2018 07:04:40 +0000 (09:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Oct 2018 07:13:23 +0000 (09:13 +0200)
commit353825f2eae29d26ef38fe154a8de63405dddba6
tree235c5e1fe1309a871006050c0ced2b75bb91d6b3
parent7f10b7e254b3e30bcac471de29e562aff4e22c60
net: mvpp2: Extract the correct ethtype from the skb for tx csum offload

[ Upstream commit 35f3625c21852ad839f20c91c7d81c4c1101e207 ]

When offloading the L3 and L4 csum computation on TX, we need to extract
the l3_proto from the ethtype, independently of the presence of a vlan
tag.

The actual driver uses skb->protocol as-is, resulting in packets with
the wrong L4 checksum being sent when there's a vlan tag in the packet
header and checksum offloading is enabled.

This commit makes use of vlan_protocol_get() to get the correct ethtype
regardless the presence of a vlan tag.

Fixes: 3f518509dedc ("ethernet: Add new driver for Marvell Armada 375 network unit")
Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/marvell/mvpp2.c