Re: [PATCH v3 2/2] sctp: optimize the sctp_sysctl_net_register

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
>> ---
>>  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

> .
> 


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Discussion]     [TCP Instrumentation]     [Ethernet Bridging]     [Linux Wireless Networking]     [Linux WPAN Networking]     [Linux Host AP]     [Linux WPAN Networking]     [Linux Bluetooth Networking]     [Linux ATH6KL Networking]     [Linux Networking Users]     [Linux Coverity]     [VLAN]     [Git]     [IETF Annouce]     [Linux Assembly]     [Security]     [Bugtraq]     [Yosemite Information]     [MIPS Linux]     [ARM Linux Kernel]     [ARM Linux]     [Linux Virtualization]     [Linux IDE]     [Linux RAID]     [Linux SCSI]