Patch "Revert "net: fix percpu memory leaks"" has been added to the 4.13-stable tree
Subsystems (5)
This is a note to let you know that I've just added the patch titled
Revert "net: fix percpu memory leaks"
to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
revert-net-fix-percpu-memory-leaks.patch
and it can be found in the queue-4.13 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Sep 14 23:20:44 PDT 2017
From: Jesper Dangaard Brouer <[email protected]>
Date: Fri, 1 Sep 2017 11:26:13 +0200
Subject: Revert "net: fix percpu memory leaks"
From: Jesper Dangaard Brouer <[email protected]>
[ Upstream commit 5a63643e583b6a9789d7a225ae076fb4e603991c ]
This reverts commit 1d6119baf0610f813eb9d9580eb4fd16de5b4ceb.
After reverting commit 6d7b857d541e ("net: use lib/percpu_counter API for fragmentation mem accounting") then here is no need for this fix-up patch. As percpu_counter is no longer used, it cannot memory leak it any-longer.
--- include/net/inet_frag.h | 7 +------ net/ieee802154/6lowpan/reassembly.c | 11 +++-------- net/ipv4/ip_fragment.c | 12 +++--------- net/ipv6/netfilter/nf_conntrack_reasm.c | 12 +++--------- net/ipv6/reassembly.c | 12 +++--------- 5 files changed, 13 insertions(+), 41 deletions(-)
include/net/inet_frag.h +1 -6
@@ -103,15 +103,10 @@ struct inet_frags {int inet_frags_init (struct inet_frags *);void inet_frags_fini (struct inet_frags *); -static inline int inet_frags_init_net (struct netns_frags *nf) +static inline void inet_frags_init_net (struct netns_frags *nf) {atomic_set (&nf->mem,0 ); -return 0 ; } -static inline void inet_frags_uninit_net (struct netns_frags *nf) -{ -} -void inet_frags_exit_net (struct netns_frags *nf,struct inet_frags *f);void inet_frag_kill (struct inet_frag_queue *q,struct inet_frags *f);
net/ieee802154/6lowpan/reassembly.c +3 -8
@@ -580,19 +580,14 @@ 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 ; - res =inet_frags_init_net (&ieee802154_lowpan->frags); -if (res) -return res; - res =lowpan_frags_ns_sysctl_register (net); -if (res) -inet_frags_uninit_net (&ieee802154_lowpan->frags); -return res; +inet_frags_init_net (&ieee802154_lowpan->frags); + +return lowpan_frags_ns_sysctl_register (net); } static void __net_exit lowpan_frags_exit_net(struct net *net)
net/ipv4/ip_fragment.c +3 -9
@@ -844,8 +844,6 @@ static void __init ip4_frags_ctl_registestatic int __net_init ipv4_frags_init_net (struct net *net) { -int res; -/* Fragment cache limits. * * The fragment memory accounting code, (tries to) account for
@@ -871,13 +869,9 @@ static int __net_init ipv4_frags_init_ne net->ipv4.frags.max_dist =64 ; - res =inet_frags_init_net (&net->ipv4.frags); -if (res) -return res; - res =ip4_frags_ns_ctl_register (net); -if (res) -inet_frags_uninit_net (&net->ipv4.frags); -return res; +inet_frags_init_net (&net->ipv4.frags); + +return ip4_frags_ns_ctl_register (net); } static void __net_exit ipv4_frags_exit_net(struct net *net)
net/ipv6/netfilter/nf_conntrack_reasm.c +3 -9
@@ -622,18 +622,12 @@ EXPORT_SYMBOL_GPL(nf_ct_frag6_gather);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 ; - res =inet_frags_init_net (&net->nf_frag.frags); -if (res) -return res; - res =nf_ct_frag6_sysctl_register (net); -if (res) -inet_frags_uninit_net (&net->nf_frag.frags); -return res; +inet_frags_init_net (&net->nf_frag.frags); + +return nf_ct_frag6_sysctl_register (net); }static void nf_ct_net_exit (struct net *net)
net/ipv6/reassembly.c +3 -9
@@ -714,19 +714,13 @@ 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 ; - res =inet_frags_init_net (&net->ipv6.frags); -if (res) -return res; - res =ip6_frags_ns_sysctl_register (net); -if (res) -inet_frags_uninit_net (&net->ipv6.frags); -return res; +inet_frags_init_net (&net->ipv6.frags); + +return ip6_frags_ns_sysctl_register (net); } static void __net_exit ipv6_frags_exit_net(struct net *net)
Patches currently in stable-queue which might be from [email protected] are
queue-4.13/revert-net-use-lib-percpu_counter-api-for-fragmentation-mem-accounting.patch queue-4.13/revert-net-fix-percpu-memory-leaks.patch