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

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: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent df7939ae
...@@ -1064,9 +1064,13 @@ void __cpuinit setup_local_APIC(void) ...@@ -1064,9 +1064,13 @@ void __cpuinit setup_local_APIC(void)
if (!integrated) /* 82489DX */ if (!integrated) /* 82489DX */
value |= APIC_LVT_LEVEL_TRIGGER; value |= APIC_LVT_LEVEL_TRIGGER;
apic_write_around(APIC_LVT1, value); apic_write_around(APIC_LVT1, value);
}
lapic_setup_esr(); void __cpuinit end_local_APIC_setup(void)
{
unsigned long value;
lapic_setup_esr();
/* Disable the local apic timer */ /* Disable the local apic timer */
value = apic_read(APIC_LVTT); value = apic_read(APIC_LVTT);
value |= (APIC_LVT_MASKED | LOCAL_TIMER_VECTOR); value |= (APIC_LVT_MASKED | LOCAL_TIMER_VECTOR);
...@@ -1256,6 +1260,7 @@ int __init APIC_init_uniprocessor(void) ...@@ -1256,6 +1260,7 @@ int __init APIC_init_uniprocessor(void)
setup_local_APIC(); setup_local_APIC();
end_local_APIC_setup();
#ifdef CONFIG_X86_IO_APIC #ifdef CONFIG_X86_IO_APIC
if (smp_found_config) if (smp_found_config)
if (!skip_ioapic_setup && nr_ioapics) if (!skip_ioapic_setup && nr_ioapics)
......
...@@ -161,6 +161,7 @@ static void __cpuinit smp_callin(void) ...@@ -161,6 +161,7 @@ static void __cpuinit smp_callin(void)
Dprintk("CALLIN, before setup_local_APIC().\n"); Dprintk("CALLIN, before setup_local_APIC().\n");
smp_callin_clear_local_apic(); smp_callin_clear_local_apic();
setup_local_APIC(); setup_local_APIC();
end_local_APIC_setup();
map_cpu_to_logical_apicid(); map_cpu_to_logical_apicid();
/* /*
...@@ -780,6 +781,7 @@ static int __init smp_sanity_check(unsigned max_cpus) ...@@ -780,6 +781,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
printk(KERN_INFO "activating minimal APIC for NMI watchdog use.\n"); printk(KERN_INFO "activating minimal APIC for NMI watchdog use.\n");
connect_bsp_APIC(); connect_bsp_APIC();
setup_local_APIC(); setup_local_APIC();
end_local_APIC_setup();
} }
return -1; return -1;
} }
...@@ -813,6 +815,7 @@ static void __init smp_boot_cpus(unsigned int max_cpus) ...@@ -813,6 +815,7 @@ static void __init smp_boot_cpus(unsigned int max_cpus)
connect_bsp_APIC(); connect_bsp_APIC();
setup_local_APIC(); setup_local_APIC();
end_local_APIC_setup();
map_cpu_to_logical_apicid(); map_cpu_to_logical_apicid();
......
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