提交 63b951ed 编写于 作者: S Santosh Shilimkar 提交者: Kevin Hilman

ARM: OMAP: CPUidle: Unregister drivere on device registration failure

If the CPUidle device registration fails for some reason, we should
unregister the driver on error path.

Fix the code accordingly. Also when at it, check of the driver registration
failure too.
Acked-by: NNishanth Menon <nm@ti.com>
Signed-off-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: NKevin Hilman <khilman@linaro.org>
上级 dbd1ba6a
......@@ -359,7 +359,10 @@ int __init omap3_idle_init(void)
if (!mpu_pd || !core_pd || !per_pd || !cam_pd)
return -ENODEV;
cpuidle_register_driver(&omap3_idle_driver);
if (cpuidle_register_driver(&omap3_idle_driver)) {
pr_err("%s: CPUidle driver register failed\n", __func__);
return -EIO;
}
dev = &per_cpu(omap3_idle_dev, smp_processor_id());
dev->cpu = 0;
......@@ -367,6 +370,7 @@ int __init omap3_idle_init(void)
if (cpuidle_register_device(dev)) {
printk(KERN_ERR "%s: CPUidle register device failed\n",
__func__);
cpuidle_unregister_driver(&omap3_idle_driver);
return -EIO;
}
......
......@@ -222,7 +222,10 @@ int __init omap4_idle_init(void)
if (!cpu_clkdm[0] || !cpu_clkdm[1])
return -ENODEV;
cpuidle_register_driver(&omap4_idle_driver);
if (cpuidle_register_driver(&omap4_idle_driver)) {
pr_err("%s: CPUidle driver register failed\n", __func__);
return -EIO;
}
for_each_cpu(cpu_id, cpu_online_mask) {
dev = &per_cpu(omap4_idle_dev, cpu_id);
......@@ -232,6 +235,7 @@ int __init omap4_idle_init(void)
#endif
if (cpuidle_register_device(dev)) {
pr_err("%s: CPUidle register failed\n", __func__);
cpuidle_unregister_driver(&omap4_idle_driver);
return -EIO;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册