Re: [PATCH -mm][resend] Disable CPU hotplug during suspend

Andrew Morton
2006-07-29T05:15:19Z

On Fri, 28 Jul 2006 10:15:29 +0200
"Rafael J. Wysocki" <rjw@sisk.pl> wrote:

> int disable_nonboot_cpus(void)
> +{
> + int cpu, error = 0;
> +
> + /* We take all of the non-boot CPUs down in one shot to avoid races
> + * with the userspace trying to use the CPU hotplug at the same time
> + */
> + mutex_lock(&cpu_add_remove_lock);
> + cpus_clear(frozen_cpus);
> + printk("Disabling non-boot CPUs ...\n");
> + for_each_online_cpu(cpu) {
> + if (cpu == 0)
> + continue;

This is presumably only called on cpu 0, yes?

How can we guarantee that, given that preemption is enabled?

What happens if cpu 0 isn't online?