On Thu, Jun 21, 2018 at 7:23 AM, Ursula Braun <ubr...@linux.ibm.com> wrote: > @@ -605,6 +606,13 @@ static int smc_connect(struct socket *sock, struct > sockaddr *addr, > > smc_copy_sock_settings_to_clc(smc); > tcp_sk(smc->clcsock->sk)->syn_smc = 1; > + if (flags & O_NONBLOCK) { > + rcu_read_lock(); > + smc->smcwq = rcu_dereference(sk->sk_wq); > + rcu_assign_pointer(sock->sk->sk_wq, > + rcu_dereference(smc->clcsock->sk->sk_wq)); > + rcu_read_unlock();
Are you really deref'ing any RCU pointer here?