Subject: Patch ported from LTC bugzilla report 31558 From: sri@us.ibm.com We saw similar stack traces with RHEL5 on zSeries(bug #28338) and iSeries(bug #29263). There definitely seems to be some bugs in the ipv6 fib insertion code. Redhat decided to work around this bug by disabling round-robin routing with ipv6 until the fib management code is fixed. The following patch does this. Acked-by: Linas Vepstas Signed-off-by: Arnd Bergmann ---- net/ipv6/route.c | 10 ++++++++++ 1 file changed, 10 insertions(+) Index: linux-2.6/net/ipv6/route.c =================================================================== --- linux-2.6.orig/net/ipv6/route.c +++ linux-2.6/net/ipv6/route.c @@ -389,6 +389,15 @@ static struct rt6_info *rt6_select(struc } } +#if 0 + /* + * The round-robin code below assumes and produces cyclic + * leaf lists. Some code in ip6_fib.c expects and produces + * NULL terminated lists which leads to the current leaf + * head to turn NULL when the end of the list is being + * reached. It's best to disable this code alltogether until + * all of the list management has been fixed. + */ if (!match && (strict & RT6_LOOKUP_F_REACHABLE) && last && last != rt0) { @@ -400,6 +409,7 @@ static struct rt6_info *rt6_select(struc last->u.next = rt0; spin_unlock(&lock); } +#endif RT6_TRACE("%s() => %p, score=%d\n", __FUNCTION__, match, mpri);