diff options
author | Vlad Yasevich <vyasevich@gmail.com> | 2017-05-23 13:38:42 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-24 16:27:14 -0400 |
commit | cc6e9de62a7f84c9293a2ea41bc412b55bb46e85 (patch) | |
tree | 4a7e7981a5bb3160aa184d3e2273e1969060d657 /drivers/net/ethernet/emulex | |
parent | 35d2f80b07bbe03fb358afb0bdeff7437a7d67ff (diff) | |
download | linux-stable-cc6e9de62a7f84c9293a2ea41bc412b55bb46e85.tar.gz linux-stable-cc6e9de62a7f84c9293a2ea41bc412b55bb46e85.tar.bz2 linux-stable-cc6e9de62a7f84c9293a2ea41bc412b55bb46e85.zip |
be2net: Fix offload features for Q-in-Q packets
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@broadcom.com>
CC: Ajit Khaparde <ajit.khaparde@broadcom.com>
CC: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
CC: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index f3a09ab55900..4eee18ce9be4 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -5078,9 +5078,11 @@ static netdev_features_t be_features_check(struct sk_buff *skb, 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; |