* [PATCH] staging: greybus: arche-platform: fix pm_notifier leak in probe error path
@ 2025-11-04 9:08 Haotian Zhang
2025-11-04 10:29 ` Johan Hovold
0 siblings, 1 reply; 2+ messages in thread
From: Haotian Zhang @ 2025-11-04 9:08 UTC (permalink / raw)
To: Vaibhav Hiremath, Johan Hovold, Alex Elder, Greg Kroah-Hartman
Cc: greybus-dev, linux-staging, linux-kernel, Haotian Zhang
In arche_platform_probe(), if arche_platform_coldboot_seq() fails after
register_pm_notifier() succeeds, the function returns without unregistering
the pm_notifier, leading to a resource leak.
Add unregister_pm_notifier() call in the err_coldboot error path to
properly clean up the registered notifier on failure.
Fixes: d29b67d44a7c ("greybus: arche-platform: Add support for init-off feature")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
---
drivers/staging/greybus/arche-platform.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/greybus/arche-platform.c
index d48464390f58..9c5bb5dae187 100644
--- a/drivers/staging/greybus/arche-platform.c
+++ b/drivers/staging/greybus/arche-platform.c
@@ -545,6 +545,7 @@ static int arche_platform_probe(struct platform_device *pdev)
return 0;
err_coldboot:
+ unregister_pm_notifier(&arche_pdata->pm_notifier);
mutex_unlock(&arche_pdata->platform_state_mutex);
err_device_remove:
device_remove_file(&pdev->dev, &dev_attr_state);
--
2.50.1.windows.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] staging: greybus: arche-platform: fix pm_notifier leak in probe error path
2025-11-04 9:08 [PATCH] staging: greybus: arche-platform: fix pm_notifier leak in probe error path Haotian Zhang
@ 2025-11-04 10:29 ` Johan Hovold
0 siblings, 0 replies; 2+ messages in thread
From: Johan Hovold @ 2025-11-04 10:29 UTC (permalink / raw)
To: Haotian Zhang
Cc: Vaibhav Hiremath, Alex Elder, Greg Kroah-Hartman, greybus-dev,
linux-staging, linux-kernel
On Tue, Nov 04, 2025 at 05:08:25PM +0800, Haotian Zhang wrote:
> In arche_platform_probe(), if arche_platform_coldboot_seq() fails after
> register_pm_notifier() succeeds, the function returns without unregistering
> the pm_notifier, leading to a resource leak.
>
> Add unregister_pm_notifier() call in the err_coldboot error path to
> properly clean up the registered notifier on failure.
>
> Fixes: d29b67d44a7c ("greybus: arche-platform: Add support for init-off feature")
> Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
> ---
> drivers/staging/greybus/arche-platform.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/staging/greybus/arche-platform.c b/drivers/staging/greybus/arche-platform.c
> index d48464390f58..9c5bb5dae187 100644
> --- a/drivers/staging/greybus/arche-platform.c
> +++ b/drivers/staging/greybus/arche-platform.c
> @@ -545,6 +545,7 @@ static int arche_platform_probe(struct platform_device *pdev)
> return 0;
>
> err_coldboot:
> + unregister_pm_notifier(&arche_pdata->pm_notifier);
> mutex_unlock(&arche_pdata->platform_state_mutex);
This looks mostly correct, but please make sure to release the lock
before deregistering the notifier so that things are unwound in reverse
order.
It would be even better to move the mutex unlock to where the driver
jumps to err_coldboot since it is only held in that conditional since
the offending commit.
> err_device_remove:
> device_remove_file(&pdev->dev, &dev_attr_state);
Johan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-11-04 10:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-04 9:08 [PATCH] staging: greybus: arche-platform: fix pm_notifier leak in probe error path Haotian Zhang
2025-11-04 10:29 ` Johan Hovold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®