]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Fix broken backport for IPv6 tunnels
authorStratos Psomadakis <psomas@gentoo.org>
Tue, 30 Aug 2011 14:48:08 +0000 (17:48 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 7 Nov 2011 20:31:50 +0000 (12:31 -0800)
Fix broken backport for IPv6 tunnels in 2.6.32-longterm kernels.

upstream commit d5aa407f59f5b83d2c50ec88f5bf56d40f1f8978 ("tunnels: fix
netns vs proto registration ordering") , which was included in
2.6.32.44-longterm, was not backported correctly, and results in a NULL
pointer dereference in ip6_tunnel.c for longterm kernels >=2.6.32.44

Use [un]register_pernet_gen_device() instead of
[un]register_pernet_device() to fix it.

Signed-off-by: Stratos Psomadakis <psomas@gentoo.org>
Cc: Wolfgang Walter <wolfgang.walter@stwm.de>
Cc: Tim Gardner <tim.gardner@canonical.com>
Cc: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/ipv6/ip6_tunnel.c

index 7fb3e02ef2ada2b08e44eb6eacac768a7bf2bd31..51ab519cb8a90ede48f216e4c7c4d798060c7067 100644 (file)
@@ -1466,7 +1466,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;
 
@@ -1487,7 +1487,7 @@ static int __init ip6_tunnel_init(void)
 out_ip6ip6:
        xfrm6_tunnel_deregister(&ip4ip6_handler, AF_INET);
 out_ip4ip6:
-       unregister_pernet_device(&ip6_tnl_net_ops);
+       unregister_pernet_gen_device(ip6_tnl_net_id, &ip6_tnl_net_ops);
 out_pernet:
        return err;
 }