* [PATCH v3 0/2] sctp: fix a problem with net_namespace
@ 2014-02-12 1:44 Wang Weidong
2014-02-12 1:44 ` [PATCH v3 1/2] sctp: fix a missed .data initialization Wang Weidong
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Wang Weidong @ 2014-02-12 1:44 UTC (permalink / raw)
To: nhorman, davem, vyasevich; +Cc: dborkman, sergei.shtylyov, netdev
fix a problem with net_namespace, and optimize
the sctp_sysctl_net_register.
v2 -> v3:
-patch2: add empty line after declaration as potined out by Sergei.
v1 -> v2:
-patch1: add Neil's ACK.
Wang Weidong (2):
sctp: fix a missed .data initialization
sctp: optimize the sctp_sysctl_net_register
net/sctp/sysctl.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
--
1.7.12
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v3 1/2] sctp: fix a missed .data initialization 2014-02-12 1:44 [PATCH v3 0/2] sctp: fix a problem with net_namespace Wang Weidong @ 2014-02-12 1:44 ` Wang Weidong 2014-02-12 1:44 ` [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register Wang Weidong 2014-02-13 22:13 ` [PATCH v3 0/2] sctp: fix a problem with net_namespace David Miller 2 siblings, 0 replies; 8+ messages in thread From: Wang Weidong @ 2014-02-12 1:44 UTC (permalink / raw) To: nhorman, davem, vyasevich; +Cc: dborkman, sergei.shtylyov, netdev As commit 3c68198e75111a90("sctp: Make hmac algorithm selection for cookie generation dynamic"), we miss the .data initialization. If we don't use the net_namespace, the problem that parts of the sysctl configuration won't be isolation and won't occur. In sctp_sysctl_net_register(), we register the sysctl for each net, in the for(), we use the 'table[i].data' as check condition, so when the 'i' is the index of sctp_hmac_alg, the data is NULL, then break. So add the .data initialization. Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Wang Weidong <wangweidong1@huawei.com> --- net/sctp/sysctl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index 7135e61..d354de5 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -151,6 +151,7 @@ static struct ctl_table sctp_net_table[] = { }, { .procname = "cookie_hmac_alg", + .data = &init_net.sctp.sctp_hmac_alg, .maxlen = 8, .mode = 0644, .proc_handler = proc_sctp_do_hmac_alg, -- 1.7.12 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register 2014-02-12 1:44 [PATCH v3 0/2] sctp: fix a problem with net_namespace Wang Weidong 2014-02-12 1:44 ` [PATCH v3 1/2] sctp: fix a missed .data initialization Wang Weidong @ 2014-02-12 1:44 ` Wang Weidong 2014-02-12 11:53 ` Neil Horman 2014-02-13 22:13 ` [PATCH v3 0/2] sctp: fix a problem with net_namespace David Miller 2 siblings, 1 reply; 8+ messages in thread From: Wang Weidong @ 2014-02-12 1:44 UTC (permalink / raw) To: nhorman, davem, vyasevich; +Cc: dborkman, sergei.shtylyov, netdev 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 | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index d354de5..35c8923 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -402,15 +402,18 @@ 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; + + if (!net_eq(net, &init_net)) { + int i; - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); - if (!table) - return -ENOMEM; + 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; -- 1.7.12 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register 2014-02-12 1:44 ` [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register Wang Weidong @ 2014-02-12 11:53 ` Neil Horman 2014-02-13 1:19 ` Wang Weidong 0 siblings, 1 reply; 8+ messages in thread From: Neil Horman @ 2014-02-12 11:53 UTC (permalink / raw) To: Wang Weidong; +Cc: davem, vyasevich, dborkman, sergei.shtylyov, netdev On Wed, Feb 12, 2014 at 09:44:44AM +0800, 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 | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c > index d354de5..35c8923 100644 > --- a/net/sctp/sysctl.c > +++ b/net/sctp/sysctl.c > @@ -402,15 +402,18 @@ 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; > + > + if (!net_eq(net, &init_net)) { > + int i; > > - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); > - if (!table) > - return -ENOMEM; > + 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; > + } > In the first version of this patch you complained about a lockdep issue. Did you figure out what that was, and if it related to these changes? Neil ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register 2014-02-12 11:53 ` Neil Horman @ 2014-02-13 1:19 ` Wang Weidong 2014-02-13 12:44 ` Neil Horman 0 siblings, 1 reply; 8+ messages in thread From: Wang Weidong @ 2014-02-13 1:19 UTC (permalink / raw) To: Neil Horman; +Cc: davem, vyasevich, dborkman, sergei.shtylyov, netdev On 2014/2/12 19:53, Neil Horman wrote: > On Wed, Feb 12, 2014 at 09:44:44AM +0800, 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 | 17 ++++++++++------- >> 1 file changed, 10 insertions(+), 7 deletions(-) >> >> diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c >> index d354de5..35c8923 100644 >> --- a/net/sctp/sysctl.c >> +++ b/net/sctp/sysctl.c >> @@ -402,15 +402,18 @@ 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; >> + >> + if (!net_eq(net, &init_net)) { >> + int i; >> >> - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); >> - if (!table) >> - return -ENOMEM; >> + 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; >> + } >> > In the first version of this patch you complained about a lockdep issue. Did > you figure out what that was, and if it related to these changes? > > Neil > > Hi Neil, The lockdep issue doesn't relate to these changes. I should send it by the another email. Sorry for confusing you. Regards Wang > . > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register 2014-02-13 1:19 ` Wang Weidong @ 2014-02-13 12:44 ` Neil Horman 2014-02-14 2:18 ` Wang Weidong 0 siblings, 1 reply; 8+ messages in thread From: Neil Horman @ 2014-02-13 12:44 UTC (permalink / raw) To: Wang Weidong; +Cc: davem, vyasevich, dborkman, sergei.shtylyov, netdev On Thu, Feb 13, 2014 at 09:19:25AM +0800, Wang Weidong wrote: > On 2014/2/12 19:53, Neil Horman wrote: > > On Wed, Feb 12, 2014 at 09:44:44AM +0800, 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 | 17 ++++++++++------- > >> 1 file changed, 10 insertions(+), 7 deletions(-) > >> > >> diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c > >> index d354de5..35c8923 100644 > >> --- a/net/sctp/sysctl.c > >> +++ b/net/sctp/sysctl.c > >> @@ -402,15 +402,18 @@ 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; > >> + > >> + if (!net_eq(net, &init_net)) { > >> + int i; > >> > >> - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); > >> - if (!table) > >> - return -ENOMEM; > >> + 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; > >> + } > >> > > In the first version of this patch you complained about a lockdep issue. Did > > you figure out what that was, and if it related to these changes? > > > > Neil > > > > > Hi Neil, > > The lockdep issue doesn't relate to these changes. I should send it > by the another email. Sorry for confusing you. > > Regards > Wang > Then you probably don't need to mention it in the same note that you're proposing changes. Acked-by: Neil Horman <nhorman@tuxdriver.com> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register 2014-02-13 12:44 ` Neil Horman @ 2014-02-14 2:18 ` Wang Weidong 0 siblings, 0 replies; 8+ messages in thread From: Wang Weidong @ 2014-02-14 2:18 UTC (permalink / raw) To: Neil Horman; +Cc: davem, vyasevich, dborkman, sergei.shtylyov, netdev On 2014/2/13 20:44, Neil Horman wrote: > On Thu, Feb 13, 2014 at 09:19:25AM +0800, Wang Weidong wrote: >> On 2014/2/12 19:53, Neil Horman wrote: >>> On Wed, Feb 12, 2014 at 09:44:44AM +0800, 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 | 17 ++++++++++------- >>>> 1 file changed, 10 insertions(+), 7 deletions(-) >>>> >>>> diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c >>>> index d354de5..35c8923 100644 >>>> --- a/net/sctp/sysctl.c >>>> +++ b/net/sctp/sysctl.c >>>> @@ -402,15 +402,18 @@ 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; >>>> + >>>> + if (!net_eq(net, &init_net)) { >>>> + int i; >>>> >>>> - table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); >>>> - if (!table) >>>> - return -ENOMEM; >>>> + 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; >>>> + } >>>> >>> In the first version of this patch you complained about a lockdep issue. Did >>> you figure out what that was, and if it related to these changes? >>> >>> Neil >>> >>> >> Hi Neil, >> >> The lockdep issue doesn't relate to these changes. I should send it >> by the another email. Sorry for confusing you. >> >> Regards >> Wang >> > Then you probably don't need to mention it in the same note that you're > proposing changes. > Ok. Got it! Thanks Wang > Acked-by: Neil Horman <nhorman@tuxdriver.com> > > > . > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/2] sctp: fix a problem with net_namespace 2014-02-12 1:44 [PATCH v3 0/2] sctp: fix a problem with net_namespace Wang Weidong 2014-02-12 1:44 ` [PATCH v3 1/2] sctp: fix a missed .data initialization Wang Weidong 2014-02-12 1:44 ` [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register Wang Weidong @ 2014-02-13 22:13 ` David Miller 2 siblings, 0 replies; 8+ messages in thread From: David Miller @ 2014-02-13 22:13 UTC (permalink / raw) To: wangweidong1; +Cc: nhorman, vyasevich, dborkman, sergei.shtylyov, netdev From: Wang Weidong <wangweidong1@huawei.com> Date: Wed, 12 Feb 2014 09:44:42 +0800 > fix a problem with net_namespace, and optimize > the sctp_sysctl_net_register. > > v2 -> v3: > -patch2: add empty line after declaration as potined out by Sergei. > > v1 -> v2: > -patch1: add Neil's ACK. > > Wang Weidong (2): > sctp: fix a missed .data initialization > sctp: optimize the sctp_sysctl_net_register Series applied, thanks. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-02-14 2:18 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-12 1:44 [PATCH v3 0/2] sctp: fix a problem with net_namespace Wang Weidong 2014-02-12 1:44 ` [PATCH v3 1/2] sctp: fix a missed .data initialization Wang Weidong 2014-02-12 1:44 ` [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register Wang Weidong 2014-02-12 11:53 ` Neil Horman 2014-02-13 1:19 ` Wang Weidong 2014-02-13 12:44 ` Neil Horman 2014-02-14 2:18 ` Wang Weidong 2014-02-13 22:13 ` [PATCH v3 0/2] sctp: fix a problem with net_namespace David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).