mirror of https://gitee.com/openkylin/linux.git
xfrm: state lookup can be lockless
This is called from the packet input path, we get lock contention if many cpus handle ipsec in parallel. After recent rcu conversion it is safe to call __xfrm_state_lookup without the spinlock. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
parent
34a3d4b2d1
commit
c2f672fc94
|
@ -1431,9 +1431,9 @@ xfrm_state_lookup(struct net *net, u32 mark, const xfrm_address_t *daddr, __be32
|
|||
{
|
||||
struct xfrm_state *x;
|
||||
|
||||
spin_lock_bh(&net->xfrm.xfrm_state_lock);
|
||||
rcu_read_lock();
|
||||
x = __xfrm_state_lookup(net, mark, daddr, spi, proto, family);
|
||||
spin_unlock_bh(&net->xfrm.xfrm_state_lock);
|
||||
rcu_read_unlock();
|
||||
return x;
|
||||
}
|
||||
EXPORT_SYMBOL(xfrm_state_lookup);
|
||||
|
|
Loading…
Reference in New Issue