forked from Minki/linux
x86: provide an end_local_APIC_setup function
It splits setup_local_APIC in two, providing a function corresponding to the ending part of it. As a side effect, smp_callin looks the same between i386 and x86_64. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
df7939ae8b
commit
ac60aae561
@ -1064,9 +1064,13 @@ void __cpuinit setup_local_APIC(void)
|
||||
if (!integrated) /* 82489DX */
|
||||
value |= APIC_LVT_LEVEL_TRIGGER;
|
||||
apic_write_around(APIC_LVT1, value);
|
||||
}
|
||||
|
||||
void __cpuinit end_local_APIC_setup(void)
|
||||
{
|
||||
unsigned long value;
|
||||
|
||||
lapic_setup_esr();
|
||||
|
||||
/* Disable the local apic timer */
|
||||
value = apic_read(APIC_LVTT);
|
||||
value |= (APIC_LVT_MASKED | LOCAL_TIMER_VECTOR);
|
||||
@ -1256,6 +1260,7 @@ int __init APIC_init_uniprocessor(void)
|
||||
|
||||
setup_local_APIC();
|
||||
|
||||
end_local_APIC_setup();
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
if (smp_found_config)
|
||||
if (!skip_ioapic_setup && nr_ioapics)
|
||||
|
@ -161,6 +161,7 @@ static void __cpuinit smp_callin(void)
|
||||
Dprintk("CALLIN, before setup_local_APIC().\n");
|
||||
smp_callin_clear_local_apic();
|
||||
setup_local_APIC();
|
||||
end_local_APIC_setup();
|
||||
map_cpu_to_logical_apicid();
|
||||
|
||||
/*
|
||||
@ -780,6 +781,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
|
||||
printk(KERN_INFO "activating minimal APIC for NMI watchdog use.\n");
|
||||
connect_bsp_APIC();
|
||||
setup_local_APIC();
|
||||
end_local_APIC_setup();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@ -813,6 +815,7 @@ static void __init smp_boot_cpus(unsigned int max_cpus)
|
||||
|
||||
connect_bsp_APIC();
|
||||
setup_local_APIC();
|
||||
end_local_APIC_setup();
|
||||
map_cpu_to_logical_apicid();
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user