Loading net/ipv6/ip6_fib.c +3 −4 Original line number Diff line number Diff line Loading @@ -91,13 +91,12 @@ static void fib6_walker_unlink(struct net *net, struct fib6_walker *w) static int fib6_new_sernum(struct net *net) { int new, old; int new, old = atomic_read(&net->ipv6.fib6_sernum); do { old = atomic_read(&net->ipv6.fib6_sernum); new = old < INT_MAX ? old + 1 : 1; } while (atomic_cmpxchg(&net->ipv6.fib6_sernum, old, new) != old); } while (!atomic_try_cmpxchg(&net->ipv6.fib6_sernum, &old, new)); return new; } Loading Loading
net/ipv6/ip6_fib.c +3 −4 Original line number Diff line number Diff line Loading @@ -91,13 +91,12 @@ static void fib6_walker_unlink(struct net *net, struct fib6_walker *w) static int fib6_new_sernum(struct net *net) { int new, old; int new, old = atomic_read(&net->ipv6.fib6_sernum); do { old = atomic_read(&net->ipv6.fib6_sernum); new = old < INT_MAX ? old + 1 : 1; } while (atomic_cmpxchg(&net->ipv6.fib6_sernum, old, new) != old); } while (!atomic_try_cmpxchg(&net->ipv6.fib6_sernum, &old, new)); return new; } Loading