From patchwork Wed Sep 26 08:41:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gao feng X-Patchwork-Id: 187016 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 321FC2C007F for ; Wed, 26 Sep 2012 19:00:13 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755297Ab2IZJAI (ORCPT ); Wed, 26 Sep 2012 05:00:08 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:51341 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1753396Ab2IZJAG (ORCPT ); Wed, 26 Sep 2012 05:00:06 -0400 X-IronPort-AV: E=Sophos;i="4.80,489,1344182400"; d="scan'208";a="5920270" Received: from unknown (HELO tang.cn.fujitsu.com) ([10.167.250.3]) by song.cn.fujitsu.com with ESMTP; 26 Sep 2012 16:58:45 +0800 Received: from fnstmail02.fnst.cn.fujitsu.com (tang.cn.fujitsu.com [127.0.0.1]) by tang.cn.fujitsu.com (8.14.3/8.13.1) with ESMTP id q8Q8fQkR015166; Wed, 26 Sep 2012 16:41:27 +0800 Received: from Donkey.fnst.cn.fujitsu.com ([10.167.225.206]) by fnstmail02.fnst.cn.fujitsu.com (Lotus Domino Release 8.5.3) with ESMTP id 2012092616414045-82950 ; Wed, 26 Sep 2012 16:41:40 +0800 From: Gao feng To: davem@davemloft.net, eric.dumazet@gmail.com, steffen.klassert@secunet.com Cc: netfilter-devel@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, linux-crypto@vger.kernel.org, pablo@netfilter.org, stephen.hemminger@vyatta.com, jengelh@inai.de, Gao feng Subject: [patch v2 04/11] nf_conntrack_netlink: pass nf_conntrack_netlink module to netlink_dump_start Date: Wed, 26 Sep 2012 16:41:21 +0800 Message-Id: <1348648888-24943-4-git-send-email-gaofeng@cn.fujitsu.com> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <1348648888-24943-1-git-send-email-gaofeng@cn.fujitsu.com> References: <1348648888-24943-1-git-send-email-gaofeng@cn.fujitsu.com> X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2012/09/26 16:41:40, Serialize by Router on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2012/09/26 16:41:45, Serialize complete at 2012/09/26 16:41:45 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org use proper netlink_dump_control.done and .module to avoid panic. Signed-off-by: Gao feng --- net/netfilter/nf_conntrack_netlink.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c index 9807f32..509a257 100644 --- a/net/netfilter/nf_conntrack_netlink.c +++ b/net/netfilter/nf_conntrack_netlink.c @@ -706,6 +706,7 @@ static int ctnetlink_done(struct netlink_callback *cb) nf_ct_put((struct nf_conn *)cb->args[1]); if (cb->data) kfree(cb->data); + netlink_dump_done(cb); return 0; } @@ -1022,6 +1023,7 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb, struct netlink_dump_control c = { .dump = ctnetlink_dump_table, .done = ctnetlink_done, + .module = THIS_MODULE, }; #ifdef CONFIG_NF_CONNTRACK_MARK if (cda[CTA_MARK] && cda[CTA_MARK_MASK]) { @@ -1706,6 +1708,8 @@ ctnetlink_stat_ct_cpu(struct sock *ctnl, struct sk_buff *skb, if (nlh->nlmsg_flags & NLM_F_DUMP) { struct netlink_dump_control c = { .dump = ctnetlink_ct_stat_cpu_dump, + .done = netlink_dump_done, + .module = THIS_MODULE, }; return netlink_dump_start(ctnl, skb, nlh, &c); } @@ -2141,6 +2145,7 @@ static int ctnetlink_exp_done(struct netlink_callback *cb) { if (cb->args[1]) nf_ct_expect_put((struct nf_conntrack_expect *)cb->args[1]); + netlink_dump_done(cb); return 0; } @@ -2222,6 +2227,7 @@ ctnetlink_get_expect(struct sock *ctnl, struct sk_buff *skb, struct netlink_dump_control c = { .dump = ctnetlink_exp_dump_table, .done = ctnetlink_exp_done, + .module = THIS_MODULE, }; return netlink_dump_start(ctnl, skb, nlh, &c); } @@ -2660,6 +2666,8 @@ ctnetlink_stat_exp_cpu(struct sock *ctnl, struct sk_buff *skb, if (nlh->nlmsg_flags & NLM_F_DUMP) { struct netlink_dump_control c = { .dump = ctnetlink_exp_stat_cpu_dump, + .done = netlink_dump_done, + .module = THIS_MODULE, }; return netlink_dump_start(ctnl, skb, nlh, &c); }