]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
extcon: adc-jack: Cleanup wakeup source only if it was enabled
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 9 May 2025 07:17:04 +0000 (09:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Dec 2025 11:45:16 +0000 (12:45 +0100)
commit 92bac7d4de9c07933f6b76d8f1c7f8240f911f4f upstream.

Driver in the probe enables wakeup source conditionally, so the cleanup
path should do the same - do not release the wakeup source memory if it
was not allocated.

Link: https://lore.kernel.org/lkml/20250509071703.39442-2-krzysztof.kozlowski@linaro.org/
Reported-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Closes: https://lore.kernel.org/r/22aaebb7-553b-4571-8a43-58a523241082@wanadoo.fr/
Fixes: 78b6a991eb6c ("extcon: adc-jack: Fix wakeup source leaks on device unbind")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/extcon/extcon-adc-jack.c

index ea06cd434052530e7ce78f5b51ef849b74f2ec05..26b083ccc94b2c25d93129291c4ccfc2da2ca9fd 100644 (file)
@@ -162,7 +162,8 @@ static int adc_jack_remove(struct platform_device *pdev)
 {
        struct adc_jack_data *data = platform_get_drvdata(pdev);
 
-       device_init_wakeup(&pdev->dev, false);
+       if (data->wakeup_source)
+               device_init_wakeup(&pdev->dev, false);
        free_irq(data->irq, data);
        cancel_work_sync(&data->handler.work);