| From foo@baz Mon Sep 17 13:33:56 CEST 2018 |
| From: Stephen Hemminger <stephen@networkplumber.org> |
| Date: Thu, 13 Sep 2018 07:58:38 -0700 |
| Subject: inet: frags: refactor lowpan_net_frag_init() |
| To: davem@davemloft.net, gregkh@linuxfoundation.org |
| Cc: netdev@vger.kernel.org, stable@vger.kernel.org, edumazet@google.com |
| Message-ID: <20180913145902.17531-7-sthemmin@microsoft.com> |
| |
| From: Eric Dumazet <edumazet@google.com> |
| |
| We want to call lowpan_net_frag_init() earlier. |
| Similar to commit "inet: frags: refactor ipv6_frag_init()" |
| |
| This is a prereq to "inet: frags: use rhashtables for reassembly units" |
| |
| Signed-off-by: Eric Dumazet <edumazet@google.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| (cherry picked from commit 807f1844df4ac23594268fa9f41902d0549e92aa) |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ieee802154/6lowpan/reassembly.c | 20 +++++++++++--------- |
| 1 file changed, 11 insertions(+), 9 deletions(-) |
| |
| --- a/net/ieee802154/6lowpan/reassembly.c |
| +++ b/net/ieee802154/6lowpan/reassembly.c |
| @@ -615,14 +615,6 @@ int __init lowpan_net_frag_init(void) |
| { |
| int ret; |
| |
| - ret = lowpan_frags_sysctl_register(); |
| - if (ret) |
| - return ret; |
| - |
| - ret = register_pernet_subsys(&lowpan_frags_ops); |
| - if (ret) |
| - goto err_pernet; |
| - |
| lowpan_frags.hashfn = lowpan_hashfn; |
| lowpan_frags.constructor = lowpan_frag_init; |
| lowpan_frags.destructor = NULL; |
| @@ -632,11 +624,21 @@ int __init lowpan_net_frag_init(void) |
| lowpan_frags.frags_cache_name = lowpan_frags_cache_name; |
| ret = inet_frags_init(&lowpan_frags); |
| if (ret) |
| - goto err_pernet; |
| + goto out; |
| + |
| + ret = lowpan_frags_sysctl_register(); |
| + if (ret) |
| + goto err_sysctl; |
| |
| + ret = register_pernet_subsys(&lowpan_frags_ops); |
| + if (ret) |
| + goto err_pernet; |
| +out: |
| return ret; |
| err_pernet: |
| lowpan_frags_sysctl_unregister(); |
| +err_sysctl: |
| + inet_frags_fini(&lowpan_frags); |
| return ret; |
| } |
| |