[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 03888) Re: Mobile IPv6 TunnelPayload => kernel panic



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