PM / devfreq: exynos-bus: Disable devfreq-event device when fails
authorYangtao Li <tiny.windzz@gmail.com>
Sun, 22 Dec 2019 17:41:32 +0000 (17:41 +0000)
committerChanwoo Choi <cw00.choi@samsung.com>
Mon, 30 Dec 2019 00:59:06 +0000 (09:59 +0900)
The exynos_bus_profile_init process may fail, but the devfreq event device
remains enabled. Call devfreq_event_disable_edev on the error return path.

Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/devfreq/exynos-bus.c

index 7f5917d..1259a0d 100644 (file)
@@ -335,10 +335,16 @@ static int exynos_bus_profile_init(struct exynos_bus *bus,
        ret = exynos_bus_set_event(bus);
        if (ret < 0) {
                dev_err(dev, "failed to set event to devfreq-event devices\n");
-               return ret;
+               goto err_edev;
        }
 
        return 0;
+
+err_edev:
+       if (exynos_bus_disable_edev(bus))
+               dev_warn(dev, "failed to disable the devfreq-event devices\n");
+
+       return ret;
 }
 
 static int exynos_bus_profile_init_passive(struct exynos_bus *bus,