Re: [PATCH ovpn-net] ovpn: fix incorrect use of rcu_access_pointer()
Antonio Quartulli <[email protected]>
| Newsgroups | gmane.network.openvpn.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi!
On 22/07/2026 03:56, Qingfang Deng wrote:
> rcu_access_pointer() should only be used to test the value of a pointer,
> not to dereference it. Use rcu_dereference() instead. No extra
> rcu_read_lock() is needed here, as the spin_lock_bh() above marks an RCU
> critical section.
>
> Fixes: f6226ae7a0cd ("ovpn: introduce the ovpn_socket object")
> Signed-off-by: Qingfang Deng <[email protected]>
> ---
> drivers/net/ovpn/peer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ovpn/peer.c b/drivers/net/ovpn/peer.c
> index a09d61296425..8de737579112 100644
> --- a/drivers/net/ovpn/peer.c
> +++ b/drivers/net/ovpn/peer.c
> @@ -1164,7 +1164,7 @@ static void ovpn_peer_release_p2p(struct ovpn_priv *ovpn, struct sock *sk,
> }
>
> if (sk) {
> - ovpn_sock = rcu_access_pointer(peer->sock);
> + ovpn_sock = rcu_dereference(peer->sock);
Sashiko says:
Using `rcu_dereference()` instead of `rcu_dereference_bh()` under
`spin_lock_bh()` triggers a lockdep warning.
--
Antonio Quartulli