Skip to content

Commit

Permalink
Thermal: Tidy up error handling in powerclamp_init
Browse files Browse the repository at this point in the history
This patch
 * adds missing kfree() for cpu_clamping_mask
 * adds return value checking for alloc_percpu()
 * unregister hotcpu notifier in exit path

Signed-off-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
  • Loading branch information
durgadoss.r@intel.com authored and Zhang Rui committed Oct 9, 2013
1 parent 22356f4 commit c32a508
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions drivers/thermal/intel_powerclamp.c
Original file line number Diff line number Diff line change
Expand Up @@ -758,21 +758,39 @@ static int powerclamp_init(void)
/* probe cpu features and ids here */
retval = powerclamp_probe();
if (retval)
return retval;
goto exit_free;

/* set default limit, maybe adjusted during runtime based on feedback */
window_size = 2;
register_hotcpu_notifier(&powerclamp_cpu_notifier);

powerclamp_thread = alloc_percpu(struct task_struct *);
if (!powerclamp_thread) {
retval = -ENOMEM;
goto exit_unregister;
}

cooling_dev = thermal_cooling_device_register("intel_powerclamp", NULL,
&powerclamp_cooling_ops);
if (IS_ERR(cooling_dev))
return -ENODEV;
if (IS_ERR(cooling_dev)) {
retval = -ENODEV;
goto exit_free_thread;
}

if (!duration)
duration = jiffies_to_msecs(DEFAULT_DURATION_JIFFIES);

powerclamp_create_debug_files();

return 0;

exit_free_thread:
free_percpu(powerclamp_thread);
exit_unregister:
unregister_hotcpu_notifier(&powerclamp_cpu_notifier);
exit_free:
kfree(cpu_clamping_mask);
return retval;
}
module_init(powerclamp_init);

Expand Down

0 comments on commit c32a508

Please sign in to comment.