|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH 1 of 3] fix S3 suspend error
# HG changeset patch
# User Guanqun Lu <guanqun.lu@xxxxxxxxx>
# Date 1235401592 -28800
# Node ID b713518a241b6f6e07edb10c3fc38143138f82ea
# Parent 84af3ded5b02ba0b3f8647e3bfa993725428633b
fix S3 suspend error.
invoke ioapic_pm_state_alloc() eariler,
thus avoiding check_lock() BUG_ON() in spin_lock().
Signed-off-by: Guanqun Lu <guanqun.lu@xxxxxxxxx>
diff -r 84af3ded5b02 -r b713518a241b xen/arch/x86/io_apic.c
--- a/xen/arch/x86/io_apic.c Thu Feb 19 11:07:33 2009 +0000
+++ b/xen/arch/x86/io_apic.c Mon Feb 23 23:06:32 2009 +0800
@@ -1779,6 +1779,22 @@ static inline void check_timer(void)
*/
#define PIC_IRQS (1 << PIC_CASCADE_IR)
+struct IO_APIC_route_entry *ioapic_pm_state=NULL;
+
+void ioapic_pm_state_alloc(void)
+{
+ int i, nr_entry = 0;
+
+ if (ioapic_pm_state != NULL)
+ return;
+
+ for (i = 0; i < nr_ioapics; i++)
+ nr_entry += nr_ioapic_registers[i];
+
+ ioapic_pm_state = _xmalloc(sizeof(struct IO_APIC_route_entry)*nr_entry,
+ sizeof(struct IO_APIC_route_entry));
+}
+
void __init setup_IO_APIC(void)
{
enable_IO_APIC();
@@ -1801,24 +1817,9 @@ void __init setup_IO_APIC(void)
init_IO_APIC_traps();
check_timer();
print_IO_APIC();
+ ioapic_pm_state_alloc();
register_keyhandler('z', print_IO_APIC_keyhandler, "print ioapic info");
-}
-
-struct IO_APIC_route_entry *ioapic_pm_state=NULL;
-
-void ioapic_pm_state_alloc(void)
-{
- int i, nr_entry = 0;
-
- if (ioapic_pm_state != NULL)
- return;
-
- for (i = 0; i < nr_ioapics; i++)
- nr_entry += nr_ioapic_registers[i];
-
- ioapic_pm_state = _xmalloc(sizeof(struct IO_APIC_route_entry)*nr_entry,
- sizeof(struct IO_APIC_route_entry));
}
int ioapic_suspend(void)
@@ -1826,8 +1827,6 @@ int ioapic_suspend(void)
struct IO_APIC_route_entry *entry;
unsigned long flags;
int apic,i;
-
- ioapic_pm_state_alloc();
if (ioapic_pm_state == NULL) {
printk("Cannot suspend ioapic due to lack of memory\n");
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|