[PATCH 4.9 29/94] be2net: Fix offload features for Q-in-Q packets

From: Greg Kroah-Hartman
Date: Mon Jun 05 2017 - 13:10:15 EST


4.9-stable review patch. If anyone has any objections, please let me know.

------------------

From: Vlad Yasevich <vyasevich@xxxxxxxxx>


[ Upstream commit cc6e9de62a7f84c9293a2ea41bc412b55bb46e85 ]

At least some of the be2net cards do not seem to be capabled
of performing checksum offload computions on Q-in-Q packets.
In these case, the recevied checksum on the remote is invalid
and TCP syn packets are dropped.

This patch adds a call to check disbled acceleration features
on Q-in-Q tagged traffic.

CC: Sathya Perla <sathya.perla@xxxxxxxxxxxx>
CC: Ajit Khaparde <ajit.khaparde@xxxxxxxxxxxx>
CC: Sriharsha Basavapatna <sriharsha.basavapatna@xxxxxxxxxxxx>
CC: Somnath Kotur <somnath.kotur@xxxxxxxxxxxx>
Signed-off-by: Vladislav Yasevich <vyasevic@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/net/ethernet/emulex/benet/be_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -5144,9 +5144,11 @@ static netdev_features_t be_features_che
struct be_adapter *adapter = netdev_priv(dev);
u8 l4_hdr = 0;

- /* The code below restricts offload features for some tunneled packets.
+ /* The code below restricts offload features for some tunneled and
+ * Q-in-Q packets.
* Offload features for normal (non tunnel) packets are unchanged.
*/
+ features = vlan_features_check(skb, features);
if (!skb->encapsulation ||
!(adapter->flags & BE_FLAGS_VXLAN_OFFLOADS))
return features;