[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1408760230-7457-5-git-send-email-vysevich@gmail.com>
Date: Fri, 22 Aug 2014 22:17:06 -0400
From: vyasevich@...il.com
To: netdev@...r.kernel.org
Cc: Vladislav Yasevich <vyasevic@...hat.com>,
Thadeu Lima de Souza Cascardo <cascardo@...ux.vnet.ibm.com>
Subject: [PATCH 4/8] ehea: Fix TSO and hw checksums with non-accelerated vlan packets.
From: Vladislav Yasevich <vyasevic@...hat.com>
The driver claims that it can do TSO and IP checksums on vlan
devices and also allows user to control vlan acceleration offloading.
This makes it possible to push traffic to this driver that has TSO or
partial checksums set, but also have a non-accelearted vlan
header. In this case, the driver will fail to correctly
identify such traffic and will not correctly perform
segmentation and checksum calculation.
Fix this by using vlan_get_protocol() helper instead of
assuming skb->protocol always has this information.
CC: Thadeu Lima de Souza Cascardo <cascardo@...ux.vnet.ibm.com>
Signed-off-by: Vladislav Yasevich <vyasevic@...hat.com>
---
drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c
index a0b418e..566b17d 100644
--- a/drivers/net/ethernet/ibm/ehea/ehea_main.c
+++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c
@@ -1994,7 +1994,7 @@ static void xmit_common(struct sk_buff *skb, struct ehea_swqe *swqe)
{
swqe->tx_control |= EHEA_SWQE_IMM_DATA_PRESENT | EHEA_SWQE_CRC;
- if (skb->protocol != htons(ETH_P_IP))
+ if (vlan_get_protocol(skb) != htons(ETH_P_IP))
return;
if (skb->ip_summed == CHECKSUM_PARTIAL)
--
1.9.3
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists