Commit 777c6ae5 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

tcp: two more missing bh disable

percpu_counter only have protection against preemption.

TCP stack uses them possibly from BH, so we need BH protection
in contexts that could be run in process context

Fixes: c10d9310 ("tcp: do not assume TCP code is non preemptible")
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent aa8a8b05
...@@ -706,7 +706,9 @@ void inet_csk_destroy_sock(struct sock *sk) ...@@ -706,7 +706,9 @@ void inet_csk_destroy_sock(struct sock *sk)
sk_refcnt_debug_release(sk); sk_refcnt_debug_release(sk);
local_bh_disable();
percpu_counter_dec(sk->sk_prot->orphan_count); percpu_counter_dec(sk->sk_prot->orphan_count);
local_bh_enable();
sock_put(sk); sock_put(sk);
} }
EXPORT_SYMBOL(inet_csk_destroy_sock); EXPORT_SYMBOL(inet_csk_destroy_sock);
......
...@@ -1839,7 +1839,9 @@ void tcp_v4_destroy_sock(struct sock *sk) ...@@ -1839,7 +1839,9 @@ void tcp_v4_destroy_sock(struct sock *sk)
tcp_free_fastopen_req(tp); tcp_free_fastopen_req(tp);
tcp_saved_syn_free(tp); tcp_saved_syn_free(tp);
local_bh_disable();
sk_sockets_allocated_dec(sk); sk_sockets_allocated_dec(sk);
local_bh_enable();
if (mem_cgroup_sockets_enabled && sk->sk_memcg) if (mem_cgroup_sockets_enabled && sk->sk_memcg)
sock_release_memcg(sk); sock_release_memcg(sk);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment