Messages in this thread Patch in this message | | | Subject | Re: [PATCH v2 tip/core/rcu 07/13] ipv6/ip6_tunnel: Apply rcu_access_pointer() to avoid sparse false positive | From | Eric Dumazet <> | Date | Wed, 09 Oct 2013 15:51:17 -0700 |
| |
On Wed, 2013-10-09 at 15:36 -0700, Paul E. McKenney wrote:
> That would work, though it would probably give sparse complaints.
No sparse error here, as I said types are correct and SPARSE_RCU ready :
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 583b77e..28f8495 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -245,7 +245,7 @@ ip6_tnl_unlink(struct ip6_tnl_net *ip6n, struct ip6_tnl *t) (iter = rtnl_dereference(*tp)) != NULL; tp = &iter->next) { if (t == iter) { - rcu_assign_pointer(*tp, t->next); + ACCESS_ONCE(*tp) = t->next; break; } } root@edumazet-glaptop:/usr/src/net-next# grep CONFIG_SPARSE_RCU_POINTER .config CONFIG_SPARSE_RCU_POINTER=y
root@edumazet-glaptop:/usr/src/net-next# make C=2 net/ipv6/ip6_tunnel.o make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `relocs'. CHK include/config/kernel.release CHK include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h CALL scripts/checksyscalls.sh CHECK scripts/mod/empty.c CHECK net/ipv6/ip6_tunnel.c
| |