Message ID | 1348635140-20225-2-git-send-email-gaofeng@cn.fujitsu.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
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 linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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); }
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(-)