Selaa lähdekoodia

ipv6: Annotate change of locking mechanism for np->opt

follows up commit 45f6fad84cc3 ("ipv6: add complete rcu protection around
np->opt") which added mixed rcu/refcount protection to np->opt.

Given the current implementation of rcu_pointer_handoff(), this has no
effect at runtime.

Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Benjamin Poirier 9 vuotta sitten
vanhempi
commit
e550785c30
1 muutettua tiedostoa jossa 6 lisäystä ja 2 poistoa
  1. 6 2
      include/net/ipv6.h

+ 6 - 2
include/net/ipv6.h

@@ -259,8 +259,12 @@ static inline struct ipv6_txoptions *txopt_get(const struct ipv6_pinfo *np)
 
 
 	rcu_read_lock();
 	rcu_read_lock();
 	opt = rcu_dereference(np->opt);
 	opt = rcu_dereference(np->opt);
-	if (opt && !atomic_inc_not_zero(&opt->refcnt))
-		opt = NULL;
+	if (opt) {
+		if (!atomic_inc_not_zero(&opt->refcnt))
+			opt = NULL;
+		else
+			opt = rcu_pointer_handoff(opt);
+	}
 	rcu_read_unlock();
 	rcu_read_unlock();
 	return opt;
 	return opt;
 }
 }