[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <228db5cc-9b10-521f-9031-e0f86f5ded3e@gmail.com>
Date: Thu, 15 Aug 2019 20:46:01 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Davide Caratti <dcaratti@...hat.com>,
Boris Pismenny <borisp@...lanox.com>,
Jakub Kicinski <jakub.kicinski@...ronome.com>,
John Fastabend <john.fastabend@...il.com>,
Dave Watson <davejwatson@...com>,
Aviad Yehezkel <aviadye@...lanox.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next 2/3] tcp: ulp: add functions to dump ulp-specific
information
On 8/15/19 6:00 PM, Davide Caratti wrote:
>
> + if (net_admin) {
> + const struct tcp_ulp_ops *ulp_ops;
> +
> + rcu_read_lock();
> + ulp_ops = icsk->icsk_ulp_ops;
> + if (ulp_ops)
> + err = tcp_diag_put_ulp(skb, sk, ulp_ops);
> + rcu_read_unlock();
> + if (err)
> + return err;
> + }
> return 0;
Why is rcu_read_lock() and rcu_read_unlock() used at all ?
icsk->icsk_ulp_ops does not seem to be rcu protected ?
If this was, then an rcu_dereference() would be appropriate.
Powered by blists - more mailing lists