Message ID | 1392083346-9420-3-git-send-email-wangweidong1@huawei.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Hello. On 02/11/2014 04:49 AM, Wang Weidong wrote: > Here, when the net is init_net, we needn't to kmemdup the ctl_table > again. So add a check for net. Also we can save some memory. > Signed-off-by: Wang Weidong <wangweidong1@huawei.com> > --- > net/sctp/sysctl.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c > index 2ddb401..b65396b 100644 > --- a/net/sctp/sysctl.c > +++ b/net/sctp/sysctl.c > @@ -403,15 +403,17 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, > > int sctp_sysctl_net_register(struct net *net) > { > - struct ctl_table *table; > - int i; > + struct ctl_table *table = sctp_net_table; > > - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); > - if (!table) > - return -ENOMEM; > + if (!net_eq(net, &init_net)) { > + int i; Empty line after declaration wouldn't hurt, just like above. > + table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); > + if (!table) > + return -ENOMEM; WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2014/2/12 0:47, Sergei Shtylyov wrote: > Hello. > > On 02/11/2014 04:49 AM, Wang Weidong wrote: > >> Here, when the net is init_net, we needn't to kmemdup the ctl_table >> again. So add a check for net. Also we can save some memory. > >> Signed-off-by: Wang Weidong <wangweidong1@huawei.com> >> --- >> net/sctp/sysctl.c | 16 +++++++++------- >> 1 file changed, 9 insertions(+), 7 deletions(-) > >> diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c >> index 2ddb401..b65396b 100644 >> --- a/net/sctp/sysctl.c >> +++ b/net/sctp/sysctl.c >> @@ -403,15 +403,17 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, >> >> int sctp_sysctl_net_register(struct net *net) >> { >> - struct ctl_table *table; >> - int i; >> + struct ctl_table *table = sctp_net_table; >> >> - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); >> - if (!table) >> - return -ENOMEM; >> + if (!net_eq(net, &init_net)) { >> + int i; > > Empty line after declaration wouldn't hurt, just like above. > Yeah. I will change it soon. Thanks Wang >> + table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); >> + if (!table) >> + return -ENOMEM; > > WBR, Sergei > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe netdev" 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/sctp/sysctl.c b/net/sctp/sysctl.c index 2ddb401..b65396b 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -403,15 +403,17 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, int sctp_sysctl_net_register(struct net *net) { - struct ctl_table *table; - int i; + struct ctl_table *table = sctp_net_table; - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); - if (!table) - return -ENOMEM; + if (!net_eq(net, &init_net)) { + int i; + table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); + if (!table) + return -ENOMEM; - for (i = 0; table[i].data; i++) - table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; + for (i = 0; table[i].data; i++) + table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; + } net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table); return 0;
Here, when the net is init_net, we needn't to kmemdup the ctl_table again. So add a check for net. Also we can save some memory. Signed-off-by: Wang Weidong <wangweidong1@huawei.com> --- net/sctp/sysctl.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)