cpu_dev = get_cpu_device(i);
trace_thermal_pre_core_offline(i);
ret = device_offline(cpu_dev);
- if (ret)
+ if (ret < 0)
pr_err("Error %d offline core %d\n",
ret, i);
trace_thermal_post_core_offline(i,
cpu_dev = get_cpu_device(cpu);
trace_thermal_pre_core_offline(cpu);
ret = device_offline(cpu_dev);
- if (ret) {
+ if (ret < 0) {
+ cpus_offlined &= ~BIT(cpu);
pr_err_ratelimited(
"Unable to offline CPU%d. err:%d\n",
cpu, ret);
&hotplug_notify_complete) != 0)
;
reinit_completion(&hotplug_notify_complete);
+
+ /*
+ * Suspend framework will have disabled the
+ * hotplug functionality. So wait till the suspend exits
+ * and then re-evaluate.
+ */
+ if (in_suspend)
+ continue;
mask = 0;
mutex_lock(&core_control_mutex);