aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/apic_32.c7
-rw-r--r--arch/x86/kernel/smpboot_32.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c
index 80c81c76625a..6f506020bd7d 100644
--- a/arch/x86/kernel/apic_32.c
+++ b/arch/x86/kernel/apic_32.c
@@ -1064,9 +1064,13 @@ void __cpuinit setup_local_APIC(void)
1064 if (!integrated) /* 82489DX */ 1064 if (!integrated) /* 82489DX */
1065 value |= APIC_LVT_LEVEL_TRIGGER; 1065 value |= APIC_LVT_LEVEL_TRIGGER;
1066 apic_write_around(APIC_LVT1, value); 1066 apic_write_around(APIC_LVT1, value);
1067}
1067 1068
1068 lapic_setup_esr(); 1069void __cpuinit end_local_APIC_setup(void)
1070{
1071 unsigned long value;
1069 1072
1073 lapic_setup_esr();
1070 /* Disable the local apic timer */ 1074 /* Disable the local apic timer */
1071 value = apic_read(APIC_LVTT); 1075 value = apic_read(APIC_LVTT);
1072 value |= (APIC_LVT_MASKED | LOCAL_TIMER_VECTOR); 1076 value |= (APIC_LVT_MASKED | LOCAL_TIMER_VECTOR);
@@ -1256,6 +1260,7 @@ int __init APIC_init_uniprocessor(void)
1256 1260
1257 setup_local_APIC(); 1261 setup_local_APIC();
1258 1262
1263 end_local_APIC_setup();
1259#ifdef CONFIG_X86_IO_APIC 1264#ifdef CONFIG_X86_IO_APIC
1260 if (smp_found_config) 1265 if (smp_found_config)
1261 if (!skip_ioapic_setup && nr_ioapics) 1266 if (!skip_ioapic_setup && nr_ioapics)
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index c03596e11db8..dbfaeb30a69a 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -161,6 +161,7 @@ static void __cpuinit smp_callin(void)
161 Dprintk("CALLIN, before setup_local_APIC().\n"); 161 Dprintk("CALLIN, before setup_local_APIC().\n");
162 smp_callin_clear_local_apic(); 162 smp_callin_clear_local_apic();
163 setup_local_APIC(); 163 setup_local_APIC();
164 end_local_APIC_setup();
164 map_cpu_to_logical_apicid(); 165 map_cpu_to_logical_apicid();
165 166
166 /* 167 /*
@@ -780,6 +781,7 @@ static int __init smp_sanity_check(unsigned max_cpus)
780 printk(KERN_INFO "activating minimal APIC for NMI watchdog use.\n"); 781 printk(KERN_INFO "activating minimal APIC for NMI watchdog use.\n");
781 connect_bsp_APIC(); 782 connect_bsp_APIC();
782 setup_local_APIC(); 783 setup_local_APIC();
784 end_local_APIC_setup();
783 } 785 }
784 return -1; 786 return -1;
785 } 787 }
@@ -813,6 +815,7 @@ static void __init smp_boot_cpus(unsigned int max_cpus)
813 815
814 connect_bsp_APIC(); 816 connect_bsp_APIC();
815 setup_local_APIC(); 817 setup_local_APIC();
818 end_local_APIC_setup();
816 map_cpu_to_logical_apicid(); 819 map_cpu_to_logical_apicid();
817 820
818 821