mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 17:51:43 +00:00
xfrm: avoid rcu sparse warning
xfrm/xfrm_state.c:1973:21: error: incompatible types in comparison expression (different address spaces) Harmless, but lets fix it to reduce the noise. While at it, get rid of unneeded NULL check, its never hit: net/ipv4/xfrm4_state.c: xfrm_state_register_afinfo(&xfrm4_state_afinfo); net/ipv6/xfrm6_state.c: return xfrm_state_register_afinfo(&xfrm6_state_afinfo); net/ipv6/xfrm6_state.c: xfrm_state_unregister_afinfo(&xfrm6_state_afinfo); ... are the only callsites. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
This commit is contained in:
parent
961a9c0a4a
commit
423826a7b1
@ -1932,10 +1932,10 @@ EXPORT_SYMBOL(xfrm_unregister_km);
|
||||
int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo)
|
||||
{
|
||||
int err = 0;
|
||||
if (unlikely(afinfo == NULL))
|
||||
return -EINVAL;
|
||||
if (unlikely(afinfo->family >= NPROTO))
|
||||
|
||||
if (WARN_ON(afinfo->family >= NPROTO))
|
||||
return -EAFNOSUPPORT;
|
||||
|
||||
spin_lock_bh(&xfrm_state_afinfo_lock);
|
||||
if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL))
|
||||
err = -EEXIST;
|
||||
@ -1948,14 +1948,14 @@ EXPORT_SYMBOL(xfrm_state_register_afinfo);
|
||||
|
||||
int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo)
|
||||
{
|
||||
int err = 0;
|
||||
if (unlikely(afinfo == NULL))
|
||||
return -EINVAL;
|
||||
if (unlikely(afinfo->family >= NPROTO))
|
||||
int err = 0, family = afinfo->family;
|
||||
|
||||
if (WARN_ON(family >= NPROTO))
|
||||
return -EAFNOSUPPORT;
|
||||
|
||||
spin_lock_bh(&xfrm_state_afinfo_lock);
|
||||
if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) {
|
||||
if (unlikely(xfrm_state_afinfo[afinfo->family] != afinfo))
|
||||
if (rcu_access_pointer(xfrm_state_afinfo[family]) != afinfo)
|
||||
err = -EINVAL;
|
||||
else
|
||||
RCU_INIT_POINTER(xfrm_state_afinfo[afinfo->family], NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user