|
@@ -1210,19 +1210,20 @@ static int __init intel_idle_init(void)
|
|
if (retval)
|
|
if (retval)
|
|
return retval;
|
|
return retval;
|
|
|
|
|
|
|
|
+ intel_idle_cpuidle_devices = alloc_percpu(struct cpuidle_device);
|
|
|
|
+ if (intel_idle_cpuidle_devices == NULL)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
+
|
|
intel_idle_cpuidle_driver_init();
|
|
intel_idle_cpuidle_driver_init();
|
|
retval = cpuidle_register_driver(&intel_idle_driver);
|
|
retval = cpuidle_register_driver(&intel_idle_driver);
|
|
if (retval) {
|
|
if (retval) {
|
|
struct cpuidle_driver *drv = cpuidle_get_driver();
|
|
struct cpuidle_driver *drv = cpuidle_get_driver();
|
|
printk(KERN_DEBUG PREFIX "intel_idle yielding to %s",
|
|
printk(KERN_DEBUG PREFIX "intel_idle yielding to %s",
|
|
drv ? drv->name : "none");
|
|
drv ? drv->name : "none");
|
|
|
|
+ free_percpu(intel_idle_cpuidle_devices);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
|
|
|
|
- intel_idle_cpuidle_devices = alloc_percpu(struct cpuidle_device);
|
|
|
|
- if (intel_idle_cpuidle_devices == NULL)
|
|
|
|
- return -ENOMEM;
|
|
|
|
-
|
|
|
|
cpu_notifier_register_begin();
|
|
cpu_notifier_register_begin();
|
|
|
|
|
|
for_each_online_cpu(i) {
|
|
for_each_online_cpu(i) {
|