Patchwork [02/11] inet_diag: pass inet_diag module to netlink_dump_start

login
register
mail settings
Submitter Gao feng
Date Sept. 26, 2012, 4:52 a.m.
Message ID <1348635140-20225-2-git-send-email-gaofeng@cn.fujitsu.com>
Download mbox | patch
Permalink /patch/186950/
State Not Applicable
Headers show

Comments

Gao feng - Sept. 26, 2012, 4:52 a.m.
use proper netlink_dump_control.done and .module to avoid panic.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
---
 net/ipv4/inet_diag.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
stephen hemminger - Sept. 26, 2012, 4:07 p.m.
On Wed, 26 Sep 2012 12:52:11 +0800
Gao feng <gaofeng@cn.fujitsu.com> wrote:

>  			struct netlink_dump_control c = {
>  				.dump = inet_diag_dump_compat,
> +				.done = netlink_dump_done,
> +				.module = THIS_MODULE,
>  			};

Since these are immutable, why the netlink_dump_control structures
on the stack (which requires code to generate at runtime), and instead
make them global

static const struct netlink_dump_control unix_diag_ctrl = {
...
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pablo Neira - Sept. 26, 2012, 5:26 p.m.
On Wed, Sep 26, 2012 at 09:07:14AM -0700, Stephen Hemminger wrote:
> On Wed, 26 Sep 2012 12:52:11 +0800
> Gao feng <gaofeng@cn.fujitsu.com> wrote:
> 
> >  			struct netlink_dump_control c = {
> >  				.dump = inet_diag_dump_compat,
> > +				.done = netlink_dump_done,
> > +				.module = THIS_MODULE,
> >  			};
> 
> Since these are immutable, why the netlink_dump_control structures
> on the stack (which requires code to generate at runtime), and instead
> make them global
> 
> static const struct netlink_dump_control unix_diag_ctrl = {
> ...

I made that code. I can send a patch to statify those
netlink_dump_control structures.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
index 570e61f..36d4be5 100644
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -972,6 +972,8 @@  static int inet_diag_rcv_msg_compat(struct sk_buff *skb, struct nlmsghdr *nlh)
 		{
 			struct netlink_dump_control c = {
 				.dump = inet_diag_dump_compat,
+				.done = netlink_dump_done,
+				.module = THIS_MODULE,
 			};
 			return netlink_dump_start(net->diag_nlsk, skb, nlh, &c);
 		}
@@ -1001,6 +1003,8 @@  static int inet_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 		{
 			struct netlink_dump_control c = {
 				.dump = inet_diag_dump,
+				.done = netlink_dump_done,
+				.module = THIS_MODULE,
 			};
 			return netlink_dump_start(net->diag_nlsk, skb, h, &c);
 		}