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