diff options
author | Florian Westphal <fw@strlen.de> | 2017-01-09 08:20:46 -0500 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2017-01-10 04:57:13 -0500 |
commit | 423826a7b104724a16676a75d597a35d3bdb18b8 (patch) | |
tree | 3b8b9f0e170d5bb26a3a15a8d144718b925834ed /net/xfrm | |
parent | 961a9c0a4a9783e47f8cb76134b2303c4872380b (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.c | 16 |
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); | |||
1932 | int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo) | 1932 | int 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 | ||
1949 | int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo) | 1949 | int 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); |