forked from luck/tmp_suning_uos_patched
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: c10d9310ed
("tcp: do not assume TCP code is non preemptible")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
aa8a8b05ad
commit
777c6ae57e
|
@ -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)
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user