aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2008-08-18 12:45:53 -0400
committerIngo Molnar <mingo@elte.hu>2008-08-18 20:07:14 -0400
commit36c9d6742897fa414f51c4e9d0f20ab4e6bf942c (patch)
tree4e671ed13edabe691f8f48a582141f3c086afd11 /arch/x86
parentfe4024dcb0c01e5399394d2807406a2c13fb1eb7 (diff)
x86: apic - unify connect_bsp_APIC
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/apic_32.c2
-rw-r--r--arch/x86/kernel/apic_64.c20
2 files changed, 20 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c
index d4efe86adc72..6d230e9d0a7d 100644
--- a/arch/x86/kernel/apic_32.c
+++ b/arch/x86/kernel/apic_32.c
@@ -1387,6 +1387,7 @@ void smp_error_interrupt(struct pt_regs *regs)
1387 */ 1387 */
1388void __init connect_bsp_APIC(void) 1388void __init connect_bsp_APIC(void)
1389{ 1389{
1390#ifdef CONFIG_X86_32
1390 if (pic_mode) { 1391 if (pic_mode) {
1391 /* 1392 /*
1392 * Do not trust the local APIC being empty at bootup. 1393 * Do not trust the local APIC being empty at bootup.
@@ -1401,6 +1402,7 @@ void __init connect_bsp_APIC(void)
1401 outb(0x70, 0x22); 1402 outb(0x70, 0x22);
1402 outb(0x01, 0x23); 1403 outb(0x01, 0x23);
1403 } 1404 }
1405#endif
1404 enable_apic_mode(); 1406 enable_apic_mode();
1405} 1407}
1406 1408
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 48806546d49f..5579e213b5d2 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -1285,10 +1285,26 @@ asmlinkage void smp_error_interrupt(void)
1285} 1285}
1286 1286
1287/** 1287/**
1288 * * connect_bsp_APIC - attach the APIC to the interrupt system 1288 * connect_bsp_APIC - attach the APIC to the interrupt system
1289 * */ 1289 */
1290void __init connect_bsp_APIC(void) 1290void __init connect_bsp_APIC(void)
1291{ 1291{
1292#ifdef CONFIG_X86_32
1293 if (pic_mode) {
1294 /*
1295 * Do not trust the local APIC being empty at bootup.
1296 */
1297 clear_local_APIC();
1298 /*
1299 * PIC mode, enable APIC mode in the IMCR, i.e. connect BSP's
1300 * local APIC to INT and NMI lines.
1301 */
1302 apic_printk(APIC_VERBOSE, "leaving PIC mode, "
1303 "enabling APIC mode.\n");
1304 outb(0x70, 0x22);
1305 outb(0x01, 0x23);
1306 }
1307#endif
1292 enable_apic_mode(); 1308 enable_apic_mode();
1293} 1309}
1294 1310