diff --git a/net/core/skmsg.c b/net/core/skmsg.c index a606ad8e8be25bc74083f69b719e726cc31d37d3..dfc2e4d6a7a025beaccd9b98c327c8216a53c2cf 100644 --- a/net/core/skmsg.c +++ b/net/core/skmsg.c @@ -904,9 +904,9 @@ static void sk_psock_strp_data_ready(struct sock *sk) if (tls_sw_has_ctx_rx(sk)) { psock->parser.saved_data_ready(sk); } else { - write_lock_bh(&sk->sk_callback_lock); + read_lock_bh(&sk->sk_callback_lock); strp_data_ready(&psock->parser.strp); - write_unlock_bh(&sk->sk_callback_lock); + read_unlock_bh(&sk->sk_callback_lock); } } rcu_read_unlock();