From patchwork Fri Jan 8 05:07:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?6auY5bOw?= X-Patchwork-Id: 564601 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 5F6B81401DE for ; Fri, 8 Jan 2016 16:08:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750824AbcAHFIT (ORCPT ); Fri, 8 Jan 2016 00:08:19 -0500 Received: from smtpbg65.qq.com ([103.7.28.233]:10193 "EHLO smtpbg65.qq.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750797AbcAHFIS (ORCPT ); Fri, 8 Jan 2016 00:08:18 -0500 X-QQ-mid: Yesmtp23t1452229683t456t0977 Received: from localhost.localdomain (unknown [111.199.173.221]) by esmtp4.qq.com (ESMTP) with id ; Fri, 08 Jan 2016 13:07:59 +0800 (CST) X-QQ-SSF: 01100000002000F0FF20000A0000000 X-QQ-FEAT: 6dXuswn9i1W9x/pWtFgVOx+mW8KHkvYIoVF+qPB/jl8kK4uP5FNojvg5GP3X8 GDB1oozjYi34rOKomTS0BKlxtiCIq0lZOkdRJRLYAATV3jfhfmzuiW69GrHwNS3Gfxksioq ypkt9una8loERa4qmdb5NJZPsHzvlxJybm8TaWCIQjn14CBDofe7s4FmE+J6f49FwLaKJm4 akNpFW8/VPh8t4oPL3IpRD4ikFAq70ZiUYkD6ljart0aPeQWLtYBJYInqqhlzvB7pSWUCFe qebKVTlbSZ9Ucf X-QQ-GoodBg: 0 From: Gao Feng To: pablo@netfilter.org Cc: fgao@ikuai8.com, netfilter-devel@vger.kernel.org Subject: [PATCH 4/4, nf-next] netfilter: nf_ct_helper: Use unidimensional helper array instead of bidimensional ones Date: Fri, 8 Jan 2016 13:07:51 +0800 Message-Id: <1452229671-10010-1-git-send-email-fgao@ikuai8.com> X-Mailer: git-send-email 1.9.1 X-QQ-SENDSIZE: 520 X-QQ-Bgrelay: 1 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org Signed-off-by: Gao Feng --- net/netfilter/nf_conntrack_ftp.c | 10 +++++----- net/netfilter/nf_conntrack_sane.c | 10 +++++----- net/netfilter/nf_conntrack_tftp.c | 12 +++++------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/net/netfilter/nf_conntrack_ftp.c b/net/netfilter/nf_conntrack_ftp.c index 02fefb2..efeca6e 100644 --- a/net/netfilter/nf_conntrack_ftp.c +++ b/net/netfilter/nf_conntrack_ftp.c @@ -572,7 +572,7 @@ static int nf_ct_ftp_from_nlattr(struct nlattr *attr, struct nf_conn *ct) return 0; } -static struct nf_conntrack_helper ftp[MAX_PORTS][2] __read_mostly; +static struct nf_conntrack_helper ftp[MAX_PORTS * 2] __read_mostly; static const struct nf_conntrack_expect_policy ftp_exp_policy = { .max_expected = 1, @@ -582,7 +582,7 @@ static const struct nf_conntrack_expect_policy ftp_exp_policy = { /* don't make this __exit, since it's called from __init ! */ static void nf_conntrack_ftp_fini(void) { - nf_conntrack_helpers_unregister(&ftp[0][0], ports_c * 2); + nf_conntrack_helpers_unregister(ftp, ports_c * 2); kfree(ftp_buffer); } @@ -600,16 +600,16 @@ static int __init nf_conntrack_ftp_init(void) /* FIXME should be configurable whether IPv4 and IPv6 FTP connections are tracked or not - YK */ for (i = 0; i < ports_c; i++) { - nf_ct_helper_init(&ftp[i][0], AF_INET, IPPROTO_TCP, "ftp", + nf_ct_helper_init(&ftp[2 * i], AF_INET, IPPROTO_TCP, "ftp", FTP_PORT, ports[i], &ftp_exp_policy, 0, sizeof(struct nf_ct_ftp_master), help, nf_ct_ftp_from_nlattr, THIS_MODULE); - nf_ct_helper_init(&ftp[i][1], AF_INET6, IPPROTO_TCP, "ftp", + nf_ct_helper_init(&ftp[2 * i + 1], AF_INET6, IPPROTO_TCP, "ftp", FTP_PORT, ports[i], &ftp_exp_policy, 0, sizeof(struct nf_ct_ftp_master), help, nf_ct_ftp_from_nlattr, THIS_MODULE); } - ret = nf_conntrack_helpers_register(&ftp[0][0], ports_c * 2); + ret = nf_conntrack_helpers_register(ftp, ports_c * 2); if (ret < 0) { pr_err("failed to register helpers\n"); kfree(ftp_buffer); diff --git a/net/netfilter/nf_conntrack_sane.c b/net/netfilter/nf_conntrack_sane.c index c93bf8e..536c208 100644 --- a/net/netfilter/nf_conntrack_sane.c +++ b/net/netfilter/nf_conntrack_sane.c @@ -166,7 +166,7 @@ out: return ret; } -static struct nf_conntrack_helper sane[MAX_PORTS][2] __read_mostly; +static struct nf_conntrack_helper sane[MAX_PORTS * 2] __read_mostly; static const struct nf_conntrack_expect_policy sane_exp_policy = { .max_expected = 1, @@ -176,7 +176,7 @@ static const struct nf_conntrack_expect_policy sane_exp_policy = { /* don't make this __exit, since it's called from __init ! */ static void nf_conntrack_sane_fini(void) { - nf_conntrack_helpers_unregister(&sane[0][0], ports_c * 2); + nf_conntrack_helpers_unregister(sane, ports_c * 2); kfree(sane_buffer); } @@ -194,17 +194,17 @@ static int __init nf_conntrack_sane_init(void) /* FIXME should be configurable whether IPv4 and IPv6 connections are tracked or not - YK */ for (i = 0; i < ports_c; i++) { - nf_ct_helper_init(&sane[i][0], AF_INET, IPPROTO_TCP, "sane", + nf_ct_helper_init(&sane[2 * i], AF_INET, IPPROTO_TCP, "sane", SANE_PORT, ports[i], &sane_exp_policy, 0, sizeof(struct nf_ct_sane_master), help, NULL, THIS_MODULE); - nf_ct_helper_init(&sane[i][1], AF_INET6, IPPROTO_TCP, "sane", + nf_ct_helper_init(&sane[2 * i + 1], AF_INET6, IPPROTO_TCP, "sane", SANE_PORT, ports[i], &sane_exp_policy, 0, sizeof(struct nf_ct_sane_master), help, NULL, THIS_MODULE); } - ret = nf_conntrack_helpers_register(&sane[0][0], ports_c * 2); + ret = nf_conntrack_helpers_register(sane, ports_c * 2); if (ret < 0) { pr_err("failed to register helpers\n"); kfree(sane_buffer); diff --git a/net/netfilter/nf_conntrack_tftp.c b/net/netfilter/nf_conntrack_tftp.c index d87c312..d93a61c 100644 --- a/net/netfilter/nf_conntrack_tftp.c +++ b/net/netfilter/nf_conntrack_tftp.c @@ -97,7 +97,7 @@ static int tftp_help(struct sk_buff *skb, return ret; } -static struct nf_conntrack_helper tftp[MAX_PORTS][2] __read_mostly; +static struct nf_conntrack_helper tftp[MAX_PORTS * 2] __read_mostly; static const struct nf_conntrack_expect_policy tftp_exp_policy = { .max_expected = 1, @@ -106,7 +106,7 @@ static const struct nf_conntrack_expect_policy tftp_exp_policy = { static void nf_conntrack_tftp_fini(void) { - nf_conntrack_helpers_unregister(&tftp[0][0], ports_c * 2); + nf_conntrack_helpers_unregister(tftp, ports_c * 2); } static int __init nf_conntrack_tftp_init(void) @@ -117,17 +117,15 @@ static int __init nf_conntrack_tftp_init(void) ports[ports_c++] = TFTP_PORT; for (i = 0; i < ports_c; i++) { - memset(&tftp[i], 0, sizeof(tftp[i])); - - nf_ct_helper_init(&tftp[i][0], AF_INET, IPPROTO_UDP, "tftp", + nf_ct_helper_init(&tftp[2 * i], AF_INET, IPPROTO_UDP, "tftp", TFTP_PORT, ports[i], &tftp_exp_policy, 0, 0, tftp_help, NULL, THIS_MODULE); - nf_ct_helper_init(&tftp[i][1], AF_INET6, IPPROTO_UDP, "tftp", + nf_ct_helper_init(&tftp[2 * i + 1], AF_INET6, IPPROTO_UDP, "tftp", TFTP_PORT, ports[i], &tftp_exp_policy, 0, 0, tftp_help, NULL, THIS_MODULE); } - ret = nf_conntrack_helpers_register(&tftp[0][0], ports_c * 2); + ret = nf_conntrack_helpers_register(tftp, ports_c * 2); if (ret < 0) { pr_err("failed to register helpers\n"); return ret;