diff options
Diffstat (limited to 'net/ipv6/ip6_fib.c')
| -rw-r--r-- | net/ipv6/ip6_fib.c | 4 |
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 | } |
