Commit b9f9294a authored by Glauber de Oliveira Costa's avatar Glauber de Oliveira Costa Committed by Ingo Molnar

x86: add callin tests to cpu_up

Now that we boot cpus here, callin_map has this meaning (same
as x86_64)
Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 07178269
...@@ -839,6 +839,7 @@ int __cpuinit native_cpu_up(unsigned int cpu) ...@@ -839,6 +839,7 @@ int __cpuinit native_cpu_up(unsigned int cpu)
{ {
int apicid = cpu_present_to_apicid(cpu); int apicid = cpu_present_to_apicid(cpu);
unsigned long flags; unsigned long flags;
int err;
WARN_ON(irqs_disabled()); WARN_ON(irqs_disabled());
...@@ -850,6 +851,14 @@ int __cpuinit native_cpu_up(unsigned int cpu) ...@@ -850,6 +851,14 @@ int __cpuinit native_cpu_up(unsigned int cpu)
return -EINVAL; return -EINVAL;
} }
/*
* Already booted CPU?
*/
if (cpu_isset(cpu, cpu_callin_map)) {
Dprintk("do_boot_cpu %d Already started\n", cpu);
return -ENOSYS;
}
/* /*
* Save current MTRR state in case it was changed since early boot * Save current MTRR state in case it was changed since early boot
* (e.g. by the ACPI SMI) to initialize new CPUs with MTRRs in sync: * (e.g. by the ACPI SMI) to initialize new CPUs with MTRRs in sync:
...@@ -863,15 +872,12 @@ int __cpuinit native_cpu_up(unsigned int cpu) ...@@ -863,15 +872,12 @@ int __cpuinit native_cpu_up(unsigned int cpu)
min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS)); min_t(unsigned long, KERNEL_PGD_PTRS, USER_PGD_PTRS));
flush_tlb_all(); flush_tlb_all();
do_boot_cpu(apicid, cpu); err = do_boot_cpu(apicid, cpu);
if (err < 0) {
/* In case one didn't come up */ Dprintk("do_boot_cpu failed %d\n", err);
if (!cpu_isset(cpu, cpu_callin_map)) { return err;
printk(KERN_DEBUG "skipping cpu%d, didn't come online\n", cpu);
return -EIO;
} }
/* /*
* Check TSC synchronization with the AP (keep irqs disabled * Check TSC synchronization with the AP (keep irqs disabled
* while doing so): * while doing so):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment