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 */
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
void __cpuinit end_local_APIC_setup(void)
|
||||||
|
{
|
||||||
|
unsigned long value;
|
||||||
|
|
||||||
lapic_setup_esr();
|
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)
|
|||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
|
|
||||||
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();
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user