mfd: rt5033: Fix wakeup source leaks on device unbind
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sun, 6 Apr 2025 19:50:15 +0000 (21:50 +0200)
committerLee Jones <lee@kernel.org>
Fri, 23 May 2025 07:49:12 +0000 (08:49 +0100)
Device can be unbound, so driver must also release memory for the wakeup
source.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250406-mfd-device-wakekup-leak-v1-7-318e14bdba0a@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/rt5033.c

index 84ebc96..2204bf1 100644 (file)
@@ -98,7 +98,11 @@ static int rt5033_i2c_probe(struct i2c_client *i2c)
                return ret;
        }
 
-       device_init_wakeup(rt5033->dev, rt5033->wakeup);
+       if (rt5033->wakeup) {
+               ret = devm_device_init_wakeup(rt5033->dev);
+               if (ret)
+                       return dev_err_probe(rt5033->dev, ret, "Failed to init wakeup\n");
+       }
 
        return 0;
 }