[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140212115344.GB4038@hmsreliant.think-freely.org>
Date: Wed, 12 Feb 2014 06:53:44 -0500
From: Neil Horman <nhorman@...driver.com>
To: Wang Weidong <wangweidong1@...wei.com>
Cc: davem@...emloft.net, vyasevich@...il.com, dborkman@...hat.com,
sergei.shtylyov@...entembedded.com, netdev@...r.kernel.org
Subject: Re: [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register
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@...wei.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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists