From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932640Ab1KCBeI (ORCPT ); Wed, 2 Nov 2011 21:34:08 -0400 Received: from cantor2.suse.de ([195.135.220.15]:50436 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932388Ab1KCBeE (ORCPT ); Wed, 2 Nov 2011 21:34:04 -0400 X-Mailbox-Line: From gregkh@clark.kroah.org Wed Nov 2 15:14:50 2011 Message-Id: <20111102221450.714196442@clark.kroah.org> User-Agent: quilt/0.48-16.4 Date: Wed, 02 Nov 2011 15:13:33 -0700 From: Greg KH To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk, Stratos Psomadakis , Wolfgang Walter , Tim Gardner , Andy Whitcroft Subject: [007/107] Fix broken backport for IPv6 tunnels In-Reply-To: <20111102221600.GA26650@kroah.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2.6.32-longterm review patch. If anyone has any objections, please let us know. ------------------ From: Stratos Psomadakis 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 Cc: Wolfgang Walter Cc: Tim Gardner Cc: Andy Whitcroft Signed-off-by: Greg Kroah-Hartman --- net/ipv6/ip6_tunnel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -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; }