aboutsummaryrefslogtreecommitdiffstats
path: root/net/xfrm
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2017-01-09 08:20:46 -0500
committerSteffen Klassert <steffen.klassert@secunet.com>2017-01-10 04:57:13 -0500
commit423826a7b104724a16676a75d597a35d3bdb18b8 (patch)
tree3b8b9f0e170d5bb26a3a15a8d144718b925834ed /net/xfrm
parent961a9c0a4a9783e47f8cb76134b2303c4872380b (diff)
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>
Diffstat (limited to 'net/xfrm')
-rw-r--r--net/xfrm/xfrm_state.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 6b3366fef019..57e9578c35e2 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1932,10 +1932,10 @@ EXPORT_SYMBOL(xfrm_unregister_km);
1932int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo) 1932int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo)
1933{ 1933{
1934 int err = 0; 1934 int err = 0;
1935 if (unlikely(afinfo == NULL)) 1935
1936 return -EINVAL; 1936 if (WARN_ON(afinfo->family >= NPROTO))
1937 if (unlikely(afinfo->family >= NPROTO))
1938 return -EAFNOSUPPORT; 1937 return -EAFNOSUPPORT;
1938
1939 spin_lock_bh(&xfrm_state_afinfo_lock); 1939 spin_lock_bh(&xfrm_state_afinfo_lock);
1940 if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL)) 1940 if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL))
1941 err = -EEXIST; 1941 err = -EEXIST;
@@ -1948,14 +1948,14 @@ EXPORT_SYMBOL(xfrm_state_register_afinfo);
1948 1948
1949int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo) 1949int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo)
1950{ 1950{
1951 int err = 0; 1951 int err = 0, family = afinfo->family;
1952 if (unlikely(afinfo == NULL)) 1952
1953 return -EINVAL; 1953 if (WARN_ON(family >= NPROTO))
1954 if (unlikely(afinfo->family >= NPROTO))
1955 return -EAFNOSUPPORT; 1954 return -EAFNOSUPPORT;
1955
1956 spin_lock_bh(&xfrm_state_afinfo_lock); 1956 spin_lock_bh(&xfrm_state_afinfo_lock);
1957 if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) { 1957 if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) {
1958 if (unlikely(xfrm_state_afinfo[afinfo->family] != afinfo)) 1958 if (rcu_access_pointer(xfrm_state_afinfo[family]) != afinfo)
1959 err = -EINVAL; 1959 err = -EINVAL;
1960 else 1960 else
1961 RCU_INIT_POINTER(xfrm_state_afinfo[afinfo->family], NULL); 1961 RCU_INIT_POINTER(xfrm_state_afinfo[afinfo->family], NULL);