* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
@ 2020-04-29 12:41 Markus Elfring
0 siblings, 0 replies; 8+ messages in thread
From: Markus Elfring @ 2020-04-29 12:41 UTC (permalink / raw)
To: Christophe Jaillet, Richard Gong
Cc: kernel-janitors, linux-kernel, Alan Tull, Greg Kroah-Hartman,
Moritz Fischer
> Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
> shorter 'devm_kcalloc(...)'.
>
> 'ctrl->genpool' can not be NULL, so axe a useless test in the remove
> function.
I would find it clearer to integrate also such small source code improvements
by separate patches.
Regards,
Markus
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 0/4 v2] firmware: stratix10-svc: Fix some error handling code
@ 2020-04-29 6:52 Christophe JAILLET
2020-04-29 6:52 ` [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code Christophe JAILLET
0 siblings, 1 reply; 8+ messages in thread
From: Christophe JAILLET @ 2020-04-29 6:52 UTC (permalink / raw)
To: richard.gong, gregkh, atull
Cc: linux-kernel, kernel-janitors, Christophe JAILLET
This serie was previously sent as a single patch.
After a comment from Dan Carpenter about an error handling path that could be
improved, I've looked deeper at the code and found other issues.
The previous patch corresponds to patch 3/4 in this serie.
This v2 takes Dan's comment into account and fix another resource leak.
Patch 1/4: svc_create_memory_pool returns an error code on error, not NULL
Patch 2/4: undo a memremap on error path and remove funtion
Patch 3/4: improve error handling in the probe function
Patch 4/4: unrelated clean-up
Christophe JAILLET (4):
firmware: stratix10-svc: Fix genpool creation error handling
firmware: stratix10-svc: Unmap some previously memremap'ed memory
firmware: stratix10-svc: Fix some error handling paths in
'stratix10_svc_drv_probe()'
firmware: stratix10-svc: Slighly simplify call
drivers/firmware/stratix10-svc.c | 42 +++++++++++++++++++-------------
1 file changed, 25 insertions(+), 17 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-04-29 6:52 [PATCH 0/4 v2] firmware: stratix10-svc: Fix some error handling code Christophe JAILLET
@ 2020-04-29 6:52 ` Christophe JAILLET
2020-05-01 15:40 ` Richard Gong
0 siblings, 1 reply; 8+ messages in thread
From: Christophe JAILLET @ 2020-04-29 6:52 UTC (permalink / raw)
To: richard.gong, gregkh, atull
Cc: linux-kernel, kernel-janitors, Christophe JAILLET
Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
shorter 'devm_kcalloc(...)'.
'ctrl->genpool' can not be NULL, so axe a useless test in the remove
function.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/firmware/stratix10-svc.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-svc.c
index 739004398877..c228337cb0a1 100644
--- a/drivers/firmware/stratix10-svc.c
+++ b/drivers/firmware/stratix10-svc.c
@@ -1002,8 +1002,7 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev)
if (!controller)
return -ENOMEM;
- chans = devm_kmalloc_array(dev, SVC_NUM_CHANNEL,
- sizeof(*chans), GFP_KERNEL | __GFP_ZERO);
+ chans = devm_kcalloc(dev, SVC_NUM_CHANNEL, sizeof(*chans), GFP_KERNEL);
if (!chans)
return -ENOMEM;
@@ -1086,8 +1085,7 @@ static int stratix10_svc_drv_remove(struct platform_device *pdev)
kthread_stop(ctrl->task);
ctrl->task = NULL;
}
- if (ctrl->genpool)
- gen_pool_destroy(ctrl->genpool);
+ gen_pool_destroy(ctrl->genpool);
list_del(&ctrl->node);
return 0;
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-04-29 6:52 ` [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code Christophe JAILLET
@ 2020-05-01 15:40 ` Richard Gong
2020-05-01 15:48 ` Christophe JAILLET
2020-05-06 10:04 ` Dan Carpenter
0 siblings, 2 replies; 8+ messages in thread
From: Richard Gong @ 2020-05-01 15:40 UTC (permalink / raw)
To: Christophe JAILLET, gregkh, atull; +Cc: linux-kernel, kernel-janitors
Hi,
On 4/29/20 1:52 AM, Christophe JAILLET wrote:
> Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
> shorter 'devm_kcalloc(...)'.
>
It doesn't make much sense.
Actually devm_kcalloc returns devm_kmalloc_array(.., flag | __GFP_ZERO).
> 'ctrl->genpool' can not be NULL, so axe a useless test in the remove
> function.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
> drivers/firmware/stratix10-svc.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-svc.c
> index 739004398877..c228337cb0a1 100644
> --- a/drivers/firmware/stratix10-svc.c
> +++ b/drivers/firmware/stratix10-svc.c
> @@ -1002,8 +1002,7 @@ static int stratix10_svc_drv_probe(struct platform_device *pdev)
> if (!controller)
> return -ENOMEM;
>
> - chans = devm_kmalloc_array(dev, SVC_NUM_CHANNEL,
> - sizeof(*chans), GFP_KERNEL | __GFP_ZERO);
> + chans = devm_kcalloc(dev, SVC_NUM_CHANNEL, sizeof(*chans), GFP_KERNEL);
> if (!chans)
> return -ENOMEM;
>
> @@ -1086,8 +1085,7 @@ static int stratix10_svc_drv_remove(struct platform_device *pdev)
> kthread_stop(ctrl->task);
> ctrl->task = NULL;
> }
> - if (ctrl->genpool)
> - gen_pool_destroy(ctrl->genpool);
> + gen_pool_destroy(ctrl->genpool);
> list_del(&ctrl->node);
>
> return 0;
>
Regards,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-05-01 15:40 ` Richard Gong
@ 2020-05-01 15:48 ` Christophe JAILLET
2020-05-01 16:55 ` Richard Gong
2020-05-06 10:04 ` Dan Carpenter
1 sibling, 1 reply; 8+ messages in thread
From: Christophe JAILLET @ 2020-05-01 15:48 UTC (permalink / raw)
To: Richard Gong, gregkh, atull; +Cc: linux-kernel, kernel-janitors
Le 01/05/2020 à 17:40, Richard Gong a écrit :
> Hi,
>
> On 4/29/20 1:52 AM, Christophe JAILLET wrote:
>> Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
>> shorter 'devm_kcalloc(...)'.
>>
> It doesn't make much sense.
> Actually devm_kcalloc returns devm_kmalloc_array(.., flag | __GFP_ZERO).
>
The only goal is to have a sightly less verbose code.
This saves one line of code and there is no need to wonder why we
explicitly pass __GFP_ZERO to kmalloc_array.
Mostly a matter of taste.
'devm_kcalloc' is inlined, so the binary should be exactly the same.
CJ
>> 'ctrl->genpool' can not be NULL, so axe a useless test in the remove
>> function.
>>
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> ---
>> drivers/firmware/stratix10-svc.c | 6 ++----
>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/firmware/stratix10-svc.c
>> b/drivers/firmware/stratix10-svc.c
>> index 739004398877..c228337cb0a1 100644
>> --- a/drivers/firmware/stratix10-svc.c
>> +++ b/drivers/firmware/stratix10-svc.c
>> @@ -1002,8 +1002,7 @@ static int stratix10_svc_drv_probe(struct
>> platform_device *pdev)
>> if (!controller)
>> return -ENOMEM;
>> - chans = devm_kmalloc_array(dev, SVC_NUM_CHANNEL,
>> - sizeof(*chans), GFP_KERNEL | __GFP_ZERO);
>> + chans = devm_kcalloc(dev, SVC_NUM_CHANNEL, sizeof(*chans),
>> GFP_KERNEL);
>> if (!chans)
>> return -ENOMEM;
>> @@ -1086,8 +1085,7 @@ static int stratix10_svc_drv_remove(struct
>> platform_device *pdev)
>> kthread_stop(ctrl->task);
>> ctrl->task = NULL;
>> }
>> - if (ctrl->genpool)
>> - gen_pool_destroy(ctrl->genpool);
>> + gen_pool_destroy(ctrl->genpool);
>> list_del(&ctrl->node);
>> return 0;
>>
>
> Regards,
> Richard
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-05-01 15:48 ` Christophe JAILLET
@ 2020-05-01 16:55 ` Richard Gong
2020-05-02 8:49 ` Christophe JAILLET
0 siblings, 1 reply; 8+ messages in thread
From: Richard Gong @ 2020-05-01 16:55 UTC (permalink / raw)
To: Christophe JAILLET, gregkh, atull; +Cc: linux-kernel, kernel-janitors
Hi,
On 5/1/20 10:48 AM, Christophe JAILLET wrote:
> Le 01/05/2020 à 17:40, Richard Gong a écrit :
>> Hi,
>>
>> On 4/29/20 1:52 AM, Christophe JAILLET wrote:
>>> Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
>>> shorter 'devm_kcalloc(...)'.
>>>
>> It doesn't make much sense.
>> Actually devm_kcalloc returns devm_kmalloc_array(.., flag | __GFP_ZERO).
>>
> The only goal is to have a sightly less verbose code.
> This saves one line of code and there is no need to wonder why we
> explicitly pass __GFP_ZERO to kmalloc_array.
>
> Mostly a matter of taste.
I prefer this part remain unchanged.
Regards,
Richard
>
> 'devm_kcalloc' is inlined, so the binary should be exactly the same. >
> CJ
>
>>> 'ctrl->genpool' can not be NULL, so axe a useless test in the remove
>>> function.
>>>
>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>>> ---
>>> drivers/firmware/stratix10-svc.c | 6 ++----
>>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/firmware/stratix10-svc.c
>>> b/drivers/firmware/stratix10-svc.c
>>> index 739004398877..c228337cb0a1 100644
>>> --- a/drivers/firmware/stratix10-svc.c
>>> +++ b/drivers/firmware/stratix10-svc.c
>>> @@ -1002,8 +1002,7 @@ static int stratix10_svc_drv_probe(struct
>>> platform_device *pdev)
>>> if (!controller)
>>> return -ENOMEM;
>>> - chans = devm_kmalloc_array(dev, SVC_NUM_CHANNEL,
>>> - sizeof(*chans), GFP_KERNEL | __GFP_ZERO);
>>> + chans = devm_kcalloc(dev, SVC_NUM_CHANNEL, sizeof(*chans),
>>> GFP_KERNEL);
>>> if (!chans)
>>> return -ENOMEM;
>>> @@ -1086,8 +1085,7 @@ static int stratix10_svc_drv_remove(struct
>>> platform_device *pdev)
>>> kthread_stop(ctrl->task);
>>> ctrl->task = NULL;
>>> }
>>> - if (ctrl->genpool)
>>> - gen_pool_destroy(ctrl->genpool);
>>> + gen_pool_destroy(ctrl->genpool);
>>> list_del(&ctrl->node);
>>> return 0;
>>>
>>
>> Regards,
>> Richard
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-05-01 16:55 ` Richard Gong
@ 2020-05-02 8:49 ` Christophe JAILLET
2020-05-05 14:18 ` Richard Gong
0 siblings, 1 reply; 8+ messages in thread
From: Christophe JAILLET @ 2020-05-02 8:49 UTC (permalink / raw)
To: Richard Gong, gregkh, atull; +Cc: linux-kernel, kernel-janitors
Le 01/05/2020 à 18:55, Richard Gong a écrit :
> Hi,
>
> On 5/1/20 10:48 AM, Christophe JAILLET wrote:
>> Le 01/05/2020 à 17:40, Richard Gong a écrit :
>>> Hi,
>>>
>>> On 4/29/20 1:52 AM, Christophe JAILLET wrote:
>>>> Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
>>>> shorter 'devm_kcalloc(...)'.
>>>>
>>> It doesn't make much sense.
>>> Actually devm_kcalloc returns devm_kmalloc_array(.., flag |
>>> __GFP_ZERO).
>>>
>> The only goal is to have a sightly less verbose code.
>> This saves one line of code and there is no need to wonder why we
>> explicitly pass __GFP_ZERO to kmalloc_array.
>>
>> Mostly a matter of taste.
> I prefer this part remain unchanged.
>
The easiest would be just to ignore this patch entirely but if you need
a v3 for the series, could you tell me if you have any comments on the 3
other patches?
CJ
> Regards,
> Richard
>
>>
>> 'devm_kcalloc' is inlined, so the binary should be exactly the same. >
>> CJ
>>
>>>> 'ctrl->genpool' can not be NULL, so axe a useless test in the remove
>>>> function.
>>>>
>>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>>>> ---
>>>> drivers/firmware/stratix10-svc.c | 6 ++----
>>>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/firmware/stratix10-svc.c
>>>> b/drivers/firmware/stratix10-svc.c
>>>> index 739004398877..c228337cb0a1 100644
>>>> --- a/drivers/firmware/stratix10-svc.c
>>>> +++ b/drivers/firmware/stratix10-svc.c
>>>> @@ -1002,8 +1002,7 @@ static int stratix10_svc_drv_probe(struct
>>>> platform_device *pdev)
>>>> if (!controller)
>>>> return -ENOMEM;
>>>> - chans = devm_kmalloc_array(dev, SVC_NUM_CHANNEL,
>>>> - sizeof(*chans), GFP_KERNEL | __GFP_ZERO);
>>>> + chans = devm_kcalloc(dev, SVC_NUM_CHANNEL, sizeof(*chans),
>>>> GFP_KERNEL);
>>>> if (!chans)
>>>> return -ENOMEM;
>>>> @@ -1086,8 +1085,7 @@ static int stratix10_svc_drv_remove(struct
>>>> platform_device *pdev)
>>>> kthread_stop(ctrl->task);
>>>> ctrl->task = NULL;
>>>> }
>>>> - if (ctrl->genpool)
>>>> - gen_pool_destroy(ctrl->genpool);
>>>> + gen_pool_destroy(ctrl->genpool);
>>>> list_del(&ctrl->node);
>>>> return 0;
>>>>
>>>
>>> Regards,
>>> Richard
>>>
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-05-02 8:49 ` Christophe JAILLET
@ 2020-05-05 14:18 ` Richard Gong
0 siblings, 0 replies; 8+ messages in thread
From: Richard Gong @ 2020-05-05 14:18 UTC (permalink / raw)
To: Christophe JAILLET, gregkh, atull; +Cc: linux-kernel, kernel-janitors
Hi,
On 5/2/20 3:49 AM, Christophe JAILLET wrote:
> Le 01/05/2020 à 18:55, Richard Gong a écrit :
>> Hi,
>>
>> On 5/1/20 10:48 AM, Christophe JAILLET wrote:
>>> Le 01/05/2020 à 17:40, Richard Gong a écrit :
>>>> Hi,
>>>>
>>>> On 4/29/20 1:52 AM, Christophe JAILLET wrote:
>>>>> Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
>>>>> shorter 'devm_kcalloc(...)'.
>>>>>
>>>> It doesn't make much sense.
>>>> Actually devm_kcalloc returns devm_kmalloc_array(.., flag |
>>>> __GFP_ZERO).
>>>>
>>> The only goal is to have a sightly less verbose code.
>>> This saves one line of code and there is no need to wonder why we
>>> explicitly pass __GFP_ZERO to kmalloc_array.
>>>
>>> Mostly a matter of taste.
>> I prefer this part remain unchanged.
>>
>
> The easiest would be just to ignore this patch entirely
Yes, please.
but if you need
> a v3 for the series, could you tell me if you have any comments on the 3
> other patches?
>
I added some comments in your patch #3, also recommend putting all
changes in one patch.
Regards,
Richard
> CJ
>
>
>> Regards,
>> Richard
>>
>>>
>>> 'devm_kcalloc' is inlined, so the binary should be exactly the same. >
>>> CJ
>>>
>>>>> 'ctrl->genpool' can not be NULL, so axe a useless test in the remove
>>>>> function.
>>>>>
>>>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>>>>> ---
>>>>> drivers/firmware/stratix10-svc.c | 6 ++----
>>>>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>>>>
>>>>> diff --git a/drivers/firmware/stratix10-svc.c
>>>>> b/drivers/firmware/stratix10-svc.c
>>>>> index 739004398877..c228337cb0a1 100644
>>>>> --- a/drivers/firmware/stratix10-svc.c
>>>>> +++ b/drivers/firmware/stratix10-svc.c
>>>>> @@ -1002,8 +1002,7 @@ static int stratix10_svc_drv_probe(struct
>>>>> platform_device *pdev)
>>>>> if (!controller)
>>>>> return -ENOMEM;
>>>>> - chans = devm_kmalloc_array(dev, SVC_NUM_CHANNEL,
>>>>> - sizeof(*chans), GFP_KERNEL | __GFP_ZERO);
>>>>> + chans = devm_kcalloc(dev, SVC_NUM_CHANNEL, sizeof(*chans),
>>>>> GFP_KERNEL);
>>>>> if (!chans)
>>>>> return -ENOMEM;
>>>>> @@ -1086,8 +1085,7 @@ static int stratix10_svc_drv_remove(struct
>>>>> platform_device *pdev)
>>>>> kthread_stop(ctrl->task);
>>>>> ctrl->task = NULL;
>>>>> }
>>>>> - if (ctrl->genpool)
>>>>> - gen_pool_destroy(ctrl->genpool);
>>>>> + gen_pool_destroy(ctrl->genpool);
>>>>> list_del(&ctrl->node);
>>>>> return 0;
>>>>>
>>>>
>>>> Regards,
>>>> Richard
>>>>
>>>
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code
2020-05-01 15:40 ` Richard Gong
2020-05-01 15:48 ` Christophe JAILLET
@ 2020-05-06 10:04 ` Dan Carpenter
1 sibling, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2020-05-06 10:04 UTC (permalink / raw)
To: Richard Gong
Cc: Christophe JAILLET, gregkh, atull, linux-kernel, kernel-janitors
On Fri, May 01, 2020 at 10:40:20AM -0500, Richard Gong wrote:
> Hi,
>
> On 4/29/20 1:52 AM, Christophe JAILLET wrote:
> > Replace 'devm_kmalloc_array(... | __GFP_ZERO)' with the equivalent and
> > shorter 'devm_kcalloc(...)'.
> >
> It doesn't make much sense.
> Actually devm_kcalloc returns devm_kmalloc_array(.., flag | __GFP_ZERO).
>
devm_kcalloc() is better style and easier to read. I was just reading
a bunch of AMD code that does this and I almost complained to them
that devm_kmalloc_array() doesn't zero the memory so they were freeing
uninitialized pointers.
regards,
dan carpenter
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-05-06 10:05 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-29 12:41 [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code Markus Elfring
-- strict thread matches above, loose matches on Subject: below --
2020-04-29 6:52 [PATCH 0/4 v2] firmware: stratix10-svc: Fix some error handling code Christophe JAILLET
2020-04-29 6:52 ` [PATCH 4/4 v2] firmware: stratix10-svc: Slightly simplify code Christophe JAILLET
2020-05-01 15:40 ` Richard Gong
2020-05-01 15:48 ` Christophe JAILLET
2020-05-01 16:55 ` Richard Gong
2020-05-02 8:49 ` Christophe JAILLET
2020-05-05 14:18 ` Richard Gong
2020-05-06 10:04 ` Dan Carpenter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome