Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp244293imj; Thu, 7 Feb 2019 03:42:58 -0800 (PST) X-Google-Smtp-Source: AHgI3IaxzhbE28zNYudlhZbpzNK+dx9V/wZ6I6wD3M5XntGX6awo+cuvCWWIaMRtk/sysAdrS/36 X-Received: by 2002:a63:ae0e:: with SMTP id q14mr11088404pgf.151.1549539778380; Thu, 07 Feb 2019 03:42:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549539778; cv=none; d=google.com; s=arc-20160816; b=cdRoAm2mji8o1L7X5sFcUTAMIKtBgabZ3P3SfFKCKf3cRMabyIDNWRoh66NRxn6v6Y +2FbrBqyRWT8A4ceyTa0S0vzq4rqW2okJY19QAh++YYy4jMjQFwtb0RW6mcEpgNQs3LN bUPohNS/2L++xNmheMtrHxBC6jMQl2VwlHV5bYcjD5v5XJBah/ekllebkjvAxcX7VJkY VN23/JS+I4Rr9bi6ItzOdjngVXvrt2VUJ710DbzdavhDaxzR2jR/G75CiCJR/vxRkNk6 taLB5dd3+kYaFC5IVSmNhpuV5vBiwJbvJ9c4/soCFFOQx4wFnkvbTDu/u3yVuWwCNwb8 ECig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=SDIX+cGw5VNatUD9HotKLwMr6cO34B91zNsMqzS1Wgs=; b=P0G1KfkZOmJAFgweqnHCFWEy8AAbvUqkzz9V5ejBsWk8+VZHxLD8AE7isJ7sfPOXFJ IewMaIUArPOvchtBvxm8+BwAUqlbJWK10VuCCchsRxkIM8GaSY3+gy8n8RxwKd19x31V 1N7jfNCOe1iVbtRvf5dmhg6YWZ4mAgu9D13CjbEGn43Kl/V1eytgRpAQpc4DOlwijwaf sfZ3W+FkSh9quqikpfGmRQIybq23mDDttQk39JjZesfbT6Ak10kuSZyi5e4QIf/iUj1P 4DuaaLfliivu/Bx972NjIm6/tOFcFnuK3A2CttTj7tw4nMugDItU6GwbCuODINzkH39V 1PEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZaVae521; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 133si9155271pfw.64.2019.02.07.03.42.43; Thu, 07 Feb 2019 03:42:58 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZaVae521; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726979AbfBGLma (ORCPT + 99 others); Thu, 7 Feb 2019 06:42:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:60714 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726691AbfBGLm3 (ORCPT ); Thu, 7 Feb 2019 06:42:29 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B446221907; Thu, 7 Feb 2019 11:42:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1549539748; bh=voYghfDWK3zOmsLaBiOY/384Shx3baxqwZ6Al2fDdOU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZaVae5218YPDDtw7R+MKwX4aU7AXOM9X1DCU18qWk4pgebOEGssUu7Ioo09Q2Z2RZ 2O1c5GeT8/iG+bCfXz4EjnLY5ON83n7K1/8GGftebAr59uCtWvn7rnmH8ad5GIyXk+ gBuSvsWB2PFm+4f4cORBpkJ30ZH70EbJezjFn8yI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Dumazet , "David S. Miller" , Ben Hutchings Subject: [PATCH 4.4 01/34] inet: frags: change inet_frags_init_net() return value Date: Thu, 7 Feb 2019 12:41:43 +0100 Message-Id: <20190207113025.610460985@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190207113025.552605181@linuxfoundation.org> References: <20190207113025.552605181@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Eric Dumazet commit 787bea7748a76130566f881c2342a0be4127d182 upstream. We will soon initialize one rhashtable per struct netns_frags in inet_frags_init_net(). This patch changes the return value to eventually propagate an error. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- include/net/inet_frag.h | 3 ++- net/ieee802154/6lowpan/reassembly.c | 11 ++++++++--- net/ipv4/ip_fragment.c | 12 +++++++++--- net/ipv6/netfilter/nf_conntrack_reasm.c | 12 +++++++++--- net/ipv6/reassembly.c | 11 +++++++++-- 5 files changed, 37 insertions(+), 12 deletions(-) --- a/include/net/inet_frag.h +++ b/include/net/inet_frag.h @@ -103,9 +103,10 @@ struct inet_frags { int inet_frags_init(struct inet_frags *); void inet_frags_fini(struct inet_frags *); -static inline void inet_frags_init_net(struct netns_frags *nf) +static inline int inet_frags_init_net(struct netns_frags *nf) { atomic_set(&nf->mem, 0); + return 0; } void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f); --- a/net/ieee802154/6lowpan/reassembly.c +++ b/net/ieee802154/6lowpan/reassembly.c @@ -580,14 +580,19 @@ static int __net_init lowpan_frags_init_ { struct netns_ieee802154_lowpan *ieee802154_lowpan = net_ieee802154_lowpan(net); + int res; ieee802154_lowpan->frags.high_thresh = IPV6_FRAG_HIGH_THRESH; ieee802154_lowpan->frags.low_thresh = IPV6_FRAG_LOW_THRESH; ieee802154_lowpan->frags.timeout = IPV6_FRAG_TIMEOUT; - inet_frags_init_net(&ieee802154_lowpan->frags); - - return lowpan_frags_ns_sysctl_register(net); + res = inet_frags_init_net(&ieee802154_lowpan->frags); + if (res < 0) + return res; + res = lowpan_frags_ns_sysctl_register(net); + if (res < 0) + inet_frags_exit_net(&ieee802154_lowpan->frags, &lowpan_frags); + return res; } static void __net_exit lowpan_frags_exit_net(struct net *net) --- a/net/ipv4/ip_fragment.c +++ b/net/ipv4/ip_fragment.c @@ -853,6 +853,8 @@ static void __init ip4_frags_ctl_registe static int __net_init ipv4_frags_init_net(struct net *net) { + int res; + /* Fragment cache limits. * * The fragment memory accounting code, (tries to) account for @@ -876,9 +878,13 @@ static int __net_init ipv4_frags_init_ne */ net->ipv4.frags.timeout = IP_FRAG_TIME; - inet_frags_init_net(&net->ipv4.frags); - - return ip4_frags_ns_ctl_register(net); + res = inet_frags_init_net(&net->ipv4.frags); + if (res < 0) + return res; + res = ip4_frags_ns_ctl_register(net); + if (res < 0) + inet_frags_exit_net(&net->ipv4.frags, &ip4_frags); + return res; } static void __net_exit ipv4_frags_exit_net(struct net *net) --- a/net/ipv6/netfilter/nf_conntrack_reasm.c +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c @@ -650,12 +650,18 @@ EXPORT_SYMBOL_GPL(nf_ct_frag6_consume_or static int nf_ct_net_init(struct net *net) { + int res; + net->nf_frag.frags.high_thresh = IPV6_FRAG_HIGH_THRESH; net->nf_frag.frags.low_thresh = IPV6_FRAG_LOW_THRESH; net->nf_frag.frags.timeout = IPV6_FRAG_TIMEOUT; - inet_frags_init_net(&net->nf_frag.frags); - - return nf_ct_frag6_sysctl_register(net); + res = inet_frags_init_net(&net->nf_frag.frags); + if (res < 0) + return res; + res = nf_ct_frag6_sysctl_register(net); + if (res < 0) + inet_frags_exit_net(&net->nf_frag.frags, &nf_frags); + return res; } static void nf_ct_net_exit(struct net *net) --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c @@ -708,13 +708,20 @@ static void ip6_frags_sysctl_unregister( static int __net_init ipv6_frags_init_net(struct net *net) { + int res; + net->ipv6.frags.high_thresh = IPV6_FRAG_HIGH_THRESH; net->ipv6.frags.low_thresh = IPV6_FRAG_LOW_THRESH; net->ipv6.frags.timeout = IPV6_FRAG_TIMEOUT; - inet_frags_init_net(&net->ipv6.frags); + res = inet_frags_init_net(&net->ipv6.frags); + if (res < 0) + return res; - return ip6_frags_ns_sysctl_register(net); + res = ip6_frags_ns_sysctl_register(net); + if (res < 0) + inet_frags_exit_net(&net->ipv6.frags, &ip6_frags); + return res; } static void __net_exit ipv6_frags_exit_net(struct net *net)