]> git.baikalelectronics.ru Git - kernel.git/commit
txhash: fix sk->sk_txrehash default
authorKevin Yang <yyd@google.com>
Tue, 7 Feb 2023 02:08:20 +0000 (02:08 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Feb 2023 18:11:48 +0000 (19:11 +0100)
commit1ce948f13e4777a8c238c6ef32ebd291e3b19def
tree62d79845fca43b1d4b7c58360389b6b1f1ccbd1e
parenta1dd44e653d55a7b9d2acc2e684c92fc873d8757
txhash: fix sk->sk_txrehash default

[ Upstream commit 44ce9b28c5e1d06105171d7513bf60afe93be2c0 ]

This code fix a bug that sk->sk_txrehash gets its default enable
value from sysctl_txrehash only when the socket is a TCP listener.

We should have sysctl_txrehash to set the default sk->sk_txrehash,
no matter TCP, nor listerner/connector.

Tested by following packetdrill:
  0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
  +0 socket(..., SOCK_DGRAM, IPPROTO_UDP) = 4
  // SO_TXREHASH == 74, default to sysctl_txrehash == 1
  +0 getsockopt(3, SOL_SOCKET, 74, [1], [4]) = 0
  +0 getsockopt(4, SOL_SOCKET, 74, [1], [4]) = 0

Fixes: cc3cbde79e39 ("txhash: Add socket option to control TX hash rethink behavior")
Signed-off-by: Kevin Yang <yyd@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/core/sock.c
net/ipv4/af_inet.c
net/ipv4/inet_connection_sock.c
net/ipv6/af_inet6.c