Skip to contentSkip to conversation

APIC is not properly suspending in 2.5.67 on UP

TRIVIAL Rusty Trivial Russell 1 participant 1 message May 5, 2003

lore
Share & tools
lore
#0 lore raw

From: Pavel Machek <[email protected]>

Hi!

Quoted 8 lines
Quoted 2 lines

This is needed otherwise APIC thinks it is not active, does not suspend properly, and kills machine.

This can only happen with UP if the machine boots with local APIC enabled and the BIOS announces an MP table.

If this is the case, then yes apic_pm_activate() needs to be done.

Quoted 7 lines
Quoted 2 lines

Extra whitespace killed (looks
ugly). Please apply,

I think some fixes are needed first:
- You're calling apic_pm_activate() from setup_local_APIC(), which is before its definition. This will cause a compile warning, and a linkage error if CONFIG_PM=n.

Fixed (by adding function prototype). Please apply,
Pavel

%patch
Index: linux/arch/i386/kernel/apic.c
===================================================================

arch/i386/kernel/apic.c renamed from arch/i386/kernel/apic.c.orig +4 -7
@@ -38,6 +38,8 @@
 
 #include "io_ports.h"
 
+static void apic_pm_activate(void);
+
 void __init apic_intr_init(void)
 {
 #ifdef CONFIG_SMP
@@ -451,6 +453,7 @@
 
 	if (nmi_watchdog == NMI_LOCAL_APIC)
 		setup_apic_nmi_watchdog();
+	apic_pm_activate();
 }
 
 #ifdef CONFIG_PM
@@ -587,7 +590,7 @@
 
 #else	/* CONFIG_PM */
 
-static inline void apic_pm_activate(void) { }
+static void apic_pm_activate(void) { }
 
 #endif	/* CONFIG_PM */
 
@@ -654,9 +657,7 @@
 		nmi_watchdog = NMI_LOCAL_APIC;
 
 	printk("Found and enabled local APIC!\n");
-
 	apic_pm_activate();
-
 	return 0;
 
 no_apic:
@@ -1135,11 +1136,8 @@
 	}
 
 	verify_local_APIC();
-
 	connect_bsp_APIC();
-
 	phys_cpu_present_map = 1 << boot_cpu_physical_apicid;
-
 	setup_local_APIC();
 
 	if (nmi_watchdog == NMI_LOCAL_APIC)
@@ -1150,6 +1148,5 @@
 			setup_IO_APIC();
 #endif
 	setup_boot_APIC_clock();
-
 	return 0;
 }
Signature · 3 lines
  What is this? http://www.kernel.org/pub/linux/kernel/people/rusty/trivial/
  Don't blame me: the Monkey is driving
  File: Pavel Machek <[email protected]>: Re: APIC is not properly suspending in 2.5.67 on UP