aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/ip6_fib.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/ip6_fib.c')
-rw-r--r--net/ipv6/ip6_fib.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
index a8919c217cc2..08e0390e001c 100644
--- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c
@@ -916,9 +916,7 @@ static void fib6_drop_pcpu_from(struct fib6_info *f6i,
916 if (pcpu_rt) { 916 if (pcpu_rt) {
917 struct fib6_info *from; 917 struct fib6_info *from;
918 918
919 from = rcu_dereference_protected(pcpu_rt->from, 919 from = xchg((__force struct fib6_info **)&pcpu_rt->from, NULL);
920 lockdep_is_held(&table->tb6_lock));
921 rcu_assign_pointer(pcpu_rt->from, NULL);
922 fib6_info_release(from); 920 fib6_info_release(from);
923 } 921 }
924 } 922 }