x86: do tests before do_boot_cpu in i386
Do tests before do_boot_cpu in native_cpu_up for i386. Tests are a little bit broader than originally, and are the same as x86_64. Test for smp_callin is not applicable right now and is deferred. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
b675f11127
commit
f915d7f46b
|
@ -711,10 +711,6 @@ static int __cpuinit __smp_prepare_cpu(int cpu)
|
|||
int apicid, ret;
|
||||
|
||||
apicid = per_cpu(x86_cpu_to_apicid, cpu);
|
||||
if (apicid == BAD_APICID) {
|
||||
ret = -ENODEV;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
info.complete = &done;
|
||||
info.apicid = apicid;
|
||||
|
@ -952,10 +948,22 @@ void __init native_smp_prepare_boot_cpu(void)
|
|||
|
||||
int __cpuinit native_cpu_up(unsigned int cpu)
|
||||
{
|
||||
int apicid = cpu_present_to_apicid(cpu);
|
||||
unsigned long flags;
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
int ret = 0;
|
||||
|
||||
WARN_ON(irqs_disabled());
|
||||
|
||||
Dprintk("++++++++++++++++++++=_---CPU UP %u\n", cpu);
|
||||
|
||||
if (apicid == BAD_APICID || apicid == boot_cpu_physical_apicid ||
|
||||
!physid_isset(apicid, phys_cpu_present_map)) {
|
||||
printk(KERN_ERR "%s: bad cpu %d\n", __func__, cpu);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
|
||||
/*
|
||||
* We do warm boot only on cpus that had booted earlier
|
||||
* Otherwise cold boot is all handled from smp_boot_cpus().
|
||||
|
|
Loading…
Reference in New Issue