diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c index deea901746c8..367f1284f05b 100644 --- a/net/ipv6/ip6_fib.c +++ b/net/ipv6/ip6_fib.c @@ -1396,6 +1396,8 @@ static struct fib6_node *fib6_repair_tree(struct net *net, RT6_TRACE("W %p adjusted by delnode 2, s=%d\n", w, w->state); w->state = w->state >= FWS_C ? FWS_U : FWS_INIT; } + if (w->state == FWS_U) + pr_warn("fib6_repair_tree: W %p adjusted by delnode 2, state FWS_U\n", w, w->state); } } } @@ -1447,8 +1449,10 @@ static void fib6_del_route(struct fib6_node *fn, struct rt6_info **rtp, if (w->state == FWS_C && w->leaf == rt) { RT6_TRACE("walker %p adjusted by delroute\n", w); w->leaf = rt->dst.rt6_next; - if (!w->leaf) + if (!w->leaf) { + pr_warn("fib6_del_route: walker %p adjusted by delroute - state FWS_U\n", w); w->state = FWS_U; + } } } read_unlock(&net->ipv6.fib6_walker_lock); @@ -1591,6 +1595,7 @@ static int fib6_walk_continue(struct fib6_walker *w) continue; } skip: + pr_warn("fib6_walk_continue: set state to FWS_U\n"); w->state = FWS_U; case FWS_U: if (fn == w->root)