mellanox: fix the dport endianness in call of __inet6_lookup_established()
authorAl Viro <viro@ZenIV.linux.org.uk>
Sat, 4 Aug 2018 20:41:27 +0000 (21:41 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Aug 2018 17:30:50 +0000 (10:30 -0700)
__inet6_lookup_established() expect th->dport passed in host-endian,
not net-endian.  The reason is microoptimization in __inet6_lookup(),
but if you use the lower-level helpers, you have to play by their
rules...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/tls_rxtx.c

index 92d3745..be137d4 100644 (file)
@@ -328,7 +328,7 @@ static int tls_update_resync_sn(struct net_device *netdev,
 
                sk = __inet6_lookup_established(dev_net(netdev), &tcp_hashinfo,
                                                &ipv6h->saddr, th->source,
-                                               &ipv6h->daddr, th->dest,
+                                               &ipv6h->daddr, ntohs(th->dest),
                                                netdev->ifindex, 0);
 #endif
        }