Hi Sebastien, Hi Shinta, Shinta Sugimoto <shinta@xxxxxxxxxxxxxx> writes: >> [ 121.178673] [<c02d5aa3>] fib6_add+0x33/0x3c0 >> [ 121.178775] [<c02d1f19>] __ip6_ins_rt+0x29/0x50 Can you try the following patch (it's a temporary workaround i had against Masahide's git tree (2.6.21-rc5)) for the same kind of panic. It might not be that but it's worth trying. I'll switch to 2.6.22-mip6 on Monday and see if I still encounter the problem on my testbed. Cheers, a+ ps: you'll get some fuzz when applying the patch. pps: the patch contains only workarounds, not solutions.
Index: linux/net/ipv6/addrconf.c
===================================================================
--- linux.orig/net/ipv6/addrconf.c 2007-07-11 14:40:20.558781826 +0200
+++ linux/net/ipv6/addrconf.c 2007-07-11 14:40:43.800106274 +0200
@@ -1120,7 +1120,11 @@
int ipv6_get_saddr(struct dst_entry *dst,
struct in6_addr *daddr, struct in6_addr *saddr)
{
- return ipv6_dev_get_saddr(dst ? ip6_dst_idev(dst)->dev : NULL, daddr, saddr);
+ /* Temporary addition before finding the bug --arno */
+ struct inet6_dev *idev = dst? ip6_dst_idev(dst) : NULL;
+ struct net_device *dev = idev? idev->dev : NULL;
+
+ return ipv6_dev_get_saddr(dev, daddr, saddr);
}
Index: linux/net/ipv6/route.c
===================================================================
--- linux.orig/net/ipv6/route.c 2007-07-11 14:40:02.037726371 +0200
+++ linux/net/ipv6/route.c 2007-07-11 14:40:43.880110833 +0200
@@ -575,6 +575,9 @@
struct fib6_table *table;
table = rt->rt6i_table;
+ /* Temporary addition before finding the bug --arno */
+ if (!table)
+ return NULL;
write_lock_bh(&table->tb6_lock);
err = fib6_add(&table->tb6_root, rt, info);
write_unlock_bh(&table->tb6_lock);
Attachment:
pgp9xzHqY79Ca.pgp
Description: PGP signature