* [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak
@ 2024-10-13 8:45 Umang Jain
2024-10-13 8:45 ` [PATCH 1/2] staging: vchiq_arm: Drop blank lines Umang Jain
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Umang Jain @ 2024-10-13 8:45 UTC (permalink / raw)
To: Greg Kroah-Hartman, Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list,
Stefan Wahren, Umang Jain
1/2 is a drive by fix.
2/2 uses devres resouce management helper devm_kzalloc() to auto-free
struct vchiq_drv_mgmt on error and .remove() paths.
It might be good to aware the devres issue and following talk might
give reviewers a helpful context:
- https://lpc.events/event/16/contributions/1227/
- https://archive.fosdem.org/2023/schedule/event/devm_kzalloc/
I am not totally sure if these problems, causes a blockers for these
patches. There are a couple of memory management issues I've spotted
which can be fixed? by devres (similar to this series) but probably I
will wait for initial feedback on this series.
Umang Jain (2):
staging: vchiq_arm: Drop blank lines
staging: vchiq_arm: Use devm_kzalloc for mgmt
.../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] staging: vchiq_arm: Drop blank lines
2024-10-13 8:45 [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
@ 2024-10-13 8:45 ` Umang Jain
2024-10-13 9:08 ` Stefan Wahren
2024-10-13 8:45 ` [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt Umang Jain
2024-10-13 8:47 ` [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
2 siblings, 1 reply; 8+ messages in thread
From: Umang Jain @ 2024-10-13 8:45 UTC (permalink / raw)
To: Greg Kroah-Hartman, Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list,
Stefan Wahren, Umang Jain
Drop unnecessary blank lines from vchiq_arm.c.
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
---
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index 27ceaac8f6cc..e780ed714a14 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -309,9 +309,6 @@ static struct vchiq_arm_state *vchiq_platform_get_arm_state(struct vchiq_state *
return (struct vchiq_arm_state *)state->platform_state;
}
-
-
-
void vchiq_dump_platform_state(struct seq_file *f)
{
seq_puts(f, " Platform: 2835 (VC master)\n");
--
2.45.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt
2024-10-13 8:45 [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
2024-10-13 8:45 ` [PATCH 1/2] staging: vchiq_arm: Drop blank lines Umang Jain
@ 2024-10-13 8:45 ` Umang Jain
2024-10-13 9:13 ` Stefan Wahren
2024-10-13 8:47 ` [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
2 siblings, 1 reply; 8+ messages in thread
From: Umang Jain @ 2024-10-13 8:45 UTC (permalink / raw)
To: Greg Kroah-Hartman, Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list,
Stefan Wahren, Umang Jain
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
---
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index e780ed714a14..334fb7037766 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -1345,7 +1345,7 @@ static int vchiq_probe(struct platform_device *pdev)
return -ENOENT;
}
- mgmt = kzalloc(sizeof(*mgmt), GFP_KERNEL);
+ mgmt = devm_kzalloc(&pdev->dev, sizeof(*mgmt), GFP_KERNEL);
if (!mgmt)
return -ENOMEM;
@@ -1403,8 +1403,6 @@ static void vchiq_remove(struct platform_device *pdev)
arm_state = vchiq_platform_get_arm_state(&mgmt->state);
kthread_stop(arm_state->ka_thread);
-
- kfree(mgmt);
}
static struct platform_driver vchiq_driver = {
--
2.45.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak
2024-10-13 8:45 [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
2024-10-13 8:45 ` [PATCH 1/2] staging: vchiq_arm: Drop blank lines Umang Jain
2024-10-13 8:45 ` [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt Umang Jain
@ 2024-10-13 8:47 ` Umang Jain
2 siblings, 0 replies; 8+ messages in thread
From: Umang Jain @ 2024-10-13 8:47 UTC (permalink / raw)
To: Greg Kroah-Hartman, Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list,
Stefan Wahren
Hi,
[Treat this series as RFC]
On 13/10/24 2:15 pm, Umang Jain wrote:
> 1/2 is a drive by fix.
> 2/2 uses devres resouce management helper devm_kzalloc() to auto-free
> struct vchiq_drv_mgmt on error and .remove() paths.
>
> It might be good to aware the devres issue and following talk might
> give reviewers a helpful context:
>
> - https://lpc.events/event/16/contributions/1227/
> - https://archive.fosdem.org/2023/schedule/event/devm_kzalloc/
>
> I am not totally sure if these problems, causes a blockers for these
> patches. There are a couple of memory management issues I've spotted
> which can be fixed? by devres (similar to this series) but probably I
> will wait for initial feedback on this series.
Was supposed to mark this as RFC for discussion and yes, I have realised
I've not written a commit message for 2/2.
>
> Umang Jain (2):
> staging: vchiq_arm: Drop blank lines
> staging: vchiq_arm: Use devm_kzalloc for mgmt
>
> .../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] staging: vchiq_arm: Drop blank lines
2024-10-13 8:45 ` [PATCH 1/2] staging: vchiq_arm: Drop blank lines Umang Jain
@ 2024-10-13 9:08 ` Stefan Wahren
0 siblings, 0 replies; 8+ messages in thread
From: Stefan Wahren @ 2024-10-13 9:08 UTC (permalink / raw)
To: Umang Jain, Greg Kroah-Hartman,
Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list
Hi Umang,
Am 13.10.24 um 10:45 schrieb Umang Jain:
> Drop unnecessary blank lines from vchiq_arm.c.
>
> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Danilo was a little bit faster [1], so I think you shouldn't care about
this.
Regards
[1] -
https://lore.kernel.org/linux-staging/20241012233931.30720-1-dpereira@lkcamp.dev/T/#u
> ---
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> index 27ceaac8f6cc..e780ed714a14 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> @@ -309,9 +309,6 @@ static struct vchiq_arm_state *vchiq_platform_get_arm_state(struct vchiq_state *
> return (struct vchiq_arm_state *)state->platform_state;
> }
>
> -
> -
> -
> void vchiq_dump_platform_state(struct seq_file *f)
> {
> seq_puts(f, " Platform: 2835 (VC master)\n");
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt
2024-10-13 8:45 ` [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt Umang Jain
@ 2024-10-13 9:13 ` Stefan Wahren
2024-10-13 10:36 ` Umang Jain
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Wahren @ 2024-10-13 9:13 UTC (permalink / raw)
To: Umang Jain, Greg Kroah-Hartman,
Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list
Hi Umang,
Am 13.10.24 um 10:45 schrieb Umang Jain:
> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
except of the missing commit message, this patch looks good to me. I
understand the concerns about devm_kzalloc, but I think this doesn't
apply in this case.
Since this should be treated as RFC, is it already tested?
Regards
> ---
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> index e780ed714a14..334fb7037766 100644
> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
> @@ -1345,7 +1345,7 @@ static int vchiq_probe(struct platform_device *pdev)
> return -ENOENT;
> }
>
> - mgmt = kzalloc(sizeof(*mgmt), GFP_KERNEL);
> + mgmt = devm_kzalloc(&pdev->dev, sizeof(*mgmt), GFP_KERNEL);
> if (!mgmt)
> return -ENOMEM;
>
> @@ -1403,8 +1403,6 @@ static void vchiq_remove(struct platform_device *pdev)
>
> arm_state = vchiq_platform_get_arm_state(&mgmt->state);
> kthread_stop(arm_state->ka_thread);
> -
> - kfree(mgmt);
> }
>
> static struct platform_driver vchiq_driver = {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt
2024-10-13 9:13 ` Stefan Wahren
@ 2024-10-13 10:36 ` Umang Jain
2024-10-13 10:46 ` Stefan Wahren
0 siblings, 1 reply; 8+ messages in thread
From: Umang Jain @ 2024-10-13 10:36 UTC (permalink / raw)
To: Stefan Wahren, Greg Kroah-Hartman,
Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list
On 13/10/24 2:43 pm, Stefan Wahren wrote:
> Hi Umang,
>
> Am 13.10.24 um 10:45 schrieb Umang Jain:
>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> except of the missing commit message, this patch looks good to me. I
> understand the concerns about devm_kzalloc, but I think this doesn't
> apply in this case.
That's what I was wondering as well, since I tried module unloading and
with the cdev also goes away? So shouldn't be conern, right ?
>
> Since this should be treated as RFC, is it already tested?
yes, it was tested
>
> Regards
>> ---
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 +---
>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git
>> a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>> b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>> index e780ed714a14..334fb7037766 100644
>> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>> @@ -1345,7 +1345,7 @@ static int vchiq_probe(struct platform_device
>> *pdev)
>> return -ENOENT;
>> }
>>
>> - mgmt = kzalloc(sizeof(*mgmt), GFP_KERNEL);
>> + mgmt = devm_kzalloc(&pdev->dev, sizeof(*mgmt), GFP_KERNEL);
>> if (!mgmt)
>> return -ENOMEM;
>>
>> @@ -1403,8 +1403,6 @@ static void vchiq_remove(struct platform_device
>> *pdev)
>>
>> arm_state = vchiq_platform_get_arm_state(&mgmt->state);
>> kthread_stop(arm_state->ka_thread);
>> -
>> - kfree(mgmt);
>> }
>>
>> static struct platform_driver vchiq_driver = {
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt
2024-10-13 10:36 ` Umang Jain
@ 2024-10-13 10:46 ` Stefan Wahren
0 siblings, 0 replies; 8+ messages in thread
From: Stefan Wahren @ 2024-10-13 10:46 UTC (permalink / raw)
To: Umang Jain, Greg Kroah-Hartman,
Broadcom internal kernel review list
Cc: linux-rpi-kernel, linux-arm-kernel, linux-staging, linux-kernel,
Kieran Bingham, Dan Carpenter, Laurent Pinchart, kernel-list
Am 13.10.24 um 12:36 schrieb Umang Jain:
>
>
> On 13/10/24 2:43 pm, Stefan Wahren wrote:
>> Hi Umang,
>>
>> Am 13.10.24 um 10:45 schrieb Umang Jain:
>>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
>> except of the missing commit message, this patch looks good to me. I
>> understand the concerns about devm_kzalloc, but I think this doesn't
>> apply in this case.
>
> That's what I was wondering as well, since I tried module unloading
> and with the cdev also goes away? So shouldn't be conern, right ?
AFAIU the problem would be if you bind the resources to the cdev, but
this isn't the case here. Btw I missed to mention that this is
considered as a fix and deserves a Fixes tag.
>
>>
>> Since this should be treated as RFC, is it already tested?
>
> yes, it was tested
>>
>> Regards
>>> ---
>>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 +---
>>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>>
>>> diff --git
>>> a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>>> b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>>> index e780ed714a14..334fb7037766 100644
>>> --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>>> +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
>>> @@ -1345,7 +1345,7 @@ static int vchiq_probe(struct platform_device
>>> *pdev)
>>> return -ENOENT;
>>> }
>>>
>>> - mgmt = kzalloc(sizeof(*mgmt), GFP_KERNEL);
>>> + mgmt = devm_kzalloc(&pdev->dev, sizeof(*mgmt), GFP_KERNEL);
>>> if (!mgmt)
>>> return -ENOMEM;
>>>
>>> @@ -1403,8 +1403,6 @@ static void vchiq_remove(struct
>>> platform_device *pdev)
>>>
>>> arm_state = vchiq_platform_get_arm_state(&mgmt->state);
>>> kthread_stop(arm_state->ka_thread);
>>> -
>>> - kfree(mgmt);
>>> }
>>>
>>> static struct platform_driver vchiq_driver = {
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-10-13 10:48 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-13 8:45 [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
2024-10-13 8:45 ` [PATCH 1/2] staging: vchiq_arm: Drop blank lines Umang Jain
2024-10-13 9:08 ` Stefan Wahren
2024-10-13 8:45 ` [PATCH 2/2] staging: vchiq_arm: Use devm_kzalloc for mgmt Umang Jain
2024-10-13 9:13 ` Stefan Wahren
2024-10-13 10:36 ` Umang Jain
2024-10-13 10:46 ` Stefan Wahren
2024-10-13 8:47 ` [PATCH 0/2] staging: vchiq_arm: Fix drv_mgmt leak Umang Jain
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox