aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/udp.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <[email protected]>2020-03-04 13:29:19 +0000
committerArnaldo Carvalho de Melo <[email protected]>2020-03-04 13:29:19 +0000
commitd46eec8e975a8180e178e01ba505801c44bc9a6c (patch)
treebff067e554fc03c576e107297085d30c8e381370 /net/ipv4/udp.c
parentperf/x86: Add Intel Tiger Lake uncore support (diff)
parentperf diff: Fix undefined string comparison spotted by clang's -Wstring-compare (diff)
downloadkernel-d46eec8e975a8180e178e01ba505801c44bc9a6c.tar.gz
kernel-d46eec8e975a8180e178e01ba505801c44bc9a6c.zip
Merge remote-tracking branch 'acme/perf/urgent' into perf/core
To pick up fixes. Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r--net/ipv4/udp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index db76b9609299..08a41f1e1cd2 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1857,8 +1857,12 @@ int __udp_disconnect(struct sock *sk, int flags)
inet->inet_dport = 0;
sock_rps_reset_rxhash(sk);
sk->sk_bound_dev_if = 0;
- if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK))
+ if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK)) {
inet_reset_saddr(sk);
+ if (sk->sk_prot->rehash &&
+ (sk->sk_userlocks & SOCK_BINDPORT_LOCK))
+ sk->sk_prot->rehash(sk);
+ }
if (!(sk->sk_userlocks & SOCK_BINDPORT_LOCK)) {
sk->sk_prot->unhash(sk);