On Tue, Mar 7, 2017 at 7:43 PM, David Ahern <d...@cumulusnetworks.com> wrote: > On 3/7/17 11:13 AM, Dmitry Vyukov wrote: >>> on this warning: >>> >>> /* dst.next really should not be set at this point */ >>> if (rt->dst.next && rt->dst.next->ops->family != AF_INET6) { >>> pr_warn("fib6_add: adding rt with bad next -- family %d dst >>> flags %x\n", >>> rt->dst.next->ops->family, rt->dst.next->flags); >>> >>> WARN_ON(1); >>> } >>> >>> You should have seen the pr_warn in the log preceding the WARN_ON dump. >> >> Right. They all have the same "IPv6: fib6_add: adding rt with bad next >> -- family 2 dst flags 6" > > remove the previous changes and try the attached.
Doing this now. FWIW I've also applied your last patch with missing "iter->dst.flags &= ~DST_IN_FIB;" and restored the warning in rt6_rcu_free and it did not fire (in a limited run). I only saw the "WARNING in fib6_add" that I already reported.