lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 20 Sep 2022 09:58:41 +0800
From:   haoxin <xhao@...ux.alibaba.com>
To:     SeongJae Park <sj@...nel.org>
Cc:     akpm@...ux-foundation.org, damon@...ts.linux.dev,
        linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 2/2] mm/damon/sysfs: use kzmalloc instead kmalloc to
 simplify codes


在 2022/9/20 上午1:22, SeongJae Park 写道:
> On Mon, 19 Sep 2022 23:12:01 +0800 Xin Hao <xhao@...ux.alibaba.com> wrote:
>
>> In damon_sysfs_access_pattern_alloc() adn damon_sysfs_attrs_alloc(),
>> we can use kzmalloc to alloc instance of the related structs, This makes
>> the function code much cleaner.
> This definitely makes the code cleaner, thank you.  But, the initial intent of
> the code is to initialize the fiedls that really need to be initialized at the
> point, for the efficiency and also for making it clear which field is needed to
> be initialized to what value here.  It's also intended to make readers wonder
> about where and how the remaining fields are initialized.

Maybe the other func like damon_sysfs_kdamonds_alloc() also need to do 
like this, you can see it return directly by

kzalloc.

static struct damon_sysfs_kdamonds *damon_sysfs_kdamonds_alloc(void)
{
             return kzalloc(sizeof(struct damon_sysfs_kdamonds), 
GFP_KERNEL);
}

> So, to my humble eyes, this change looks like making the code a little bit
> inefficient and unclear, sorry.
>
>
> Thanks,
> SJ
>
>> Signed-off-by: Xin Hao <xhao@...ux.alibaba.com>
>> ---
>>   mm/damon/sysfs.c | 15 ++-------------
>>   1 file changed, 2 insertions(+), 13 deletions(-)
>>
>> diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
>> index b852a75b9f39..06154ece7960 100644
>> --- a/mm/damon/sysfs.c
>> +++ b/mm/damon/sysfs.c
>> @@ -657,13 +657,7 @@ struct damon_sysfs_access_pattern {
>>   static
>>   struct damon_sysfs_access_pattern *damon_sysfs_access_pattern_alloc(void)
>>   {
>> -	struct damon_sysfs_access_pattern *access_pattern =
>> -		kmalloc(sizeof(*access_pattern), GFP_KERNEL);
>> -
>> -	if (!access_pattern)
>> -		return NULL;
>> -	access_pattern->kobj = (struct kobject){};
>> -	return access_pattern;
>> +	return kzalloc(sizeof(struct damon_sysfs_access_pattern), GFP_KERNEL);
>>   }
>>   
>>   static int damon_sysfs_access_pattern_add_range_dir(
>> @@ -1620,12 +1614,7 @@ struct damon_sysfs_attrs {
>>   
>>   static struct damon_sysfs_attrs *damon_sysfs_attrs_alloc(void)
>>   {
>> -	struct damon_sysfs_attrs *attrs = kmalloc(sizeof(*attrs), GFP_KERNEL);
>> -
>> -	if (!attrs)
>> -		return NULL;
>> -	attrs->kobj = (struct kobject){};
>> -	return attrs;
>> +	return kzalloc(sizeof(struct damon_sysfs_attrs), GFP_KERNEL);
>>   }
>>   
>>   static int damon_sysfs_attrs_add_dirs(struct damon_sysfs_attrs *attrs)
>> -- 
>> 2.31.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ