aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
diff options
context:
space:
mode:
authorInbar Karmy <inbark@mellanox.com>2017-12-07 17:26:33 +0200
committerSaeed Mahameed <saeedm@mellanox.com>2018-02-20 12:52:54 -0800
commitef7a3518f7dd4f4cf5e5b5358c93d1eb78df28fb (patch)
tree335acdd94629167d42adb57438906b7852bdf165 /drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
parentnet/mlx5e: Fix TCP checksum in LRO buffers (diff)
downloadlinux-dev-ef7a3518f7dd4f4cf5e5b5358c93d1eb78df28fb.tar.xz
linux-dev-ef7a3518f7dd4f4cf5e5b5358c93d1eb78df28fb.zip
net/mlx5e: Fix loopback self test when GRO is off
When GRO is off, the transport header pointer in sk_buff is initialized to network's header. To find the udp header, instead of using udp_hdr() which assumes skb_network_header was set, manually calculate the udp header offset. Fixes: 0952da791c97 ("net/mlx5e: Add support for loopback selftest") Signed-off-by: Inbar Karmy <inbark@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
index 5a4608281f38..707976482c09 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
@@ -216,7 +216,8 @@ mlx5e_test_loopback_validate(struct sk_buff *skb,
if (iph->protocol != IPPROTO_UDP)
goto out;
- udph = udp_hdr(skb);
+ /* Don't assume skb_transport_header() was set */
+ udph = (struct udphdr *)((u8 *)iph + 4 * iph->ihl);
if (udph->dest != htons(9))
goto out;