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

Bug#633738: ip6_tunnel: kernel BUG at net_namespace.c:497



Alexander Clouter <alex@digriz.org.uk> writes:

Hi,

> [   33.356789] [<c02397ec>] (net_assign_generic+0x3c/0xbc) from [<bf24d3d0>] (ip6_tnl_init_net+0x98/0x19c [ip6_tunnel])
> [   33.367378] [<bf24d3d0>] (ip6_tnl_init_net+0x98/0x19c [ip6_tunnel]) from [<c023942c>] (register_pernet_operations+0x40/0xf4)
> [   33.378658] [<c023942c>] (register_pernet_operations+0x40/0xf4) from [<c02395c0>] (register_pernet_device+0x20/0x54)
> [   33.389240] [<c02395c0>] (register_pernet_device+0x20/0x54) from [<bf25200c>] (ip6_tunnel_init+0xc/0x84 [ip6_tunnel])
> [   33.399915] [<bf25200c>] (ip6_tunnel_init+0xc/0x84 [ip6_tunnel]) from [<c002734c>] (do_one_initcall+0x6c/0x1e4)
> [   33.410062] [<c002734c>] (do_one_initcall+0x6c/0x1e4) from [<c00738ec>] (sys_init_module+0xc0/0x1f0)
> [   33.419241] [<c00738ec>] (sys_init_module+0xc0/0x1f0) from [<c0027ea0>] (ret_fast_syscall+0x0/0x28)
> [   33.428333] Code: e1a01000 e59f000c eb0a2ec7 e3a03000 (e5833000)
> [   33.434502] ---[ end trace bf87ce5c849aaa8e ]---
> Segmentation fault
> Failed to bring up iptv-shironeko.
> ----
>
> This is a regression as I was able to do all this with earlier kernels; definately 2.6.32-34squeeze1.

hm... looks like it's from the backport of mainline commit
d5aa407f59f5b83d2c50ec88f5bf56d40f1f8978. It's changing a call to
register_pernet_gen_device() into a call to
register_pernet_device(). Changing it back to
register_pernet_gen_device() [1] allows to load the ip6_tunnel module but
I've not tested if it was working.

If you want a test kernel for kirkwood with the change, please say it
and I'll build one.

Arnaud

[1]
--- linux-source-2.6.32/net/ipv6/ip6_tunnel.c	2011-06-11 21:10:52.000000000 +0200
+++ linux-source-2.6.32/net/ipv6/ip6_tunnel.c	2011-07-14 18:45:59.000000000 +0200
@@ -1465,7 +1465,7 @@ static int __init ip6_tunnel_init(void)
 {
 	int  err;
 
-	err = register_pernet_device(&ip6_tnl_net_ops);
+	err = register_pernet_gen_device(&ip6_tnl_net_id, &ip6_tnl_net_ops);
 	if (err < 0)
 		goto out_pernet;
 

Reply to: