From 432f3748e0358071c404f53a35968d82970562d2 Mon Sep 17 00:00:00 2001 From: Jon Hunter Date: Tue, 1 Jul 2025 13:01:21 +0100 Subject: [PATCH] misc: bluedroid_pm: Free proc on failure If the call to wakeup_source_register() fails during probe, then the 'proc' interface is not freed. Ensure that this is freed as expected. JIRA LINQPJ14-60 Change-Id: I188be2998429c1ada6ccdf765791367e61735359 Signed-off-by: Jon Hunter Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3397251 (cherry picked from commit a0f0bebe2a2a54b87f91b1812c22bbd14470a61c) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3461888 Reviewed-by: Brad Griffis GVS: buildbot_gerritrpt --- drivers/misc/bluedroid_pm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/misc/bluedroid_pm.c b/drivers/misc/bluedroid_pm.c index 9842685d..33984e2b 100644 --- a/drivers/misc/bluedroid_pm.c +++ b/drivers/misc/bluedroid_pm.c @@ -472,7 +472,7 @@ static int bluedroid_pm_probe(struct platform_device *pdev) dev_name(&pdev->dev)); if (!bluedroid_pm->wake_lock) { BDP_ERR("Failed to register wakeup source"); - goto free_ext_wake; + goto free_bt_proc; } /* Initialize timer */ @@ -489,6 +489,8 @@ static int bluedroid_pm_probe(struct platform_device *pdev) return 0; +free_bt_proc: + remove_bt_proc_interface(); free_ext_wake: if (bluedroid_pm->host_wake_irq > -1) free_irq(bluedroid_pm->host_wake_irq, bluedroid_pm);