[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250307114802.9045-1-fw@strlen.de>
Date: Fri, 7 Mar 2025 12:47:54 +0100
From: Florian Westphal <fw@...len.de>
To: <netdev@...r.kernel.org>
Cc: steffen.klassert@...unet.com,
herbert@...dor.apana.org.au,
davem@...emloft.net,
Florian Westphal <fw@...len.de>
Subject: [PATCH ipsec-next] xfrm: state: make xfrm_state_lookup_byaddr lockless
This appears to be an oversight back when the state lookup
was converted to RCU, I see no reason why we need to hold the
state lock here.
__xfrm_state_lookup_byaddr already uses xfrm_state_hold_rcu
helper to obtain a reference, so just replace the state
lock with rcu.
Signed-off-by: Florian Westphal <fw@...len.de>
---
net/xfrm/xfrm_state.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 7b1028671144..07545944a536 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -2313,12 +2313,12 @@ xfrm_state_lookup_byaddr(struct net *net, u32 mark,
struct xfrm_hash_state_ptrs state_ptrs;
struct xfrm_state *x;
- spin_lock_bh(&net->xfrm.xfrm_state_lock);
+ rcu_read_lock();
xfrm_hash_ptrs_get(net, &state_ptrs);
x = __xfrm_state_lookup_byaddr(&state_ptrs, mark, daddr, saddr, proto, family);
- spin_unlock_bh(&net->xfrm.xfrm_state_lock);
+ rcu_read_unlock();
return x;
}
EXPORT_SYMBOL(xfrm_state_lookup_byaddr);
--
2.48.1
Powered by blists - more mailing lists