gpio: zynq: Fix wakeup source leaks on device unbind
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sun, 6 Apr 2025 20:22:45 +0000 (22:22 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 20 Apr 2025 08:15:54 +0000 (10:15 +0200)
commit c5672e310ad971d408752fce7596ed27adc6008f upstream.

Device can be unbound, so driver must also release memory for the wakeup
source.

Cc: stable@vger.kernel.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250406202245.53854-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpio/gpio-zynq.c

index 1a42336dfc1d4a1ee4b35b25383948eae48dff71..cc53e6940ad7e662adbcfa51b11546a79a766863 100644 (file)
@@ -1011,6 +1011,7 @@ static void zynq_gpio_remove(struct platform_device *pdev)
        ret = pm_runtime_get_sync(&pdev->dev);
        if (ret < 0)
                dev_warn(&pdev->dev, "pm_runtime_get_sync() Failed\n");
+       device_init_wakeup(&pdev->dev, 0);
        gpiochip_remove(&gpio->chip);
        device_set_wakeup_capable(&pdev->dev, 0);
        pm_runtime_disable(&pdev->dev);