WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH][PV_OPS_DOM0]Fix the host S3 resume hang

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: [Xen-devel] [PATCH][PV_OPS_DOM0]Fix the host S3 resume hang
From: "Wei, Gang" <gang.wei@xxxxxxxxx>
Date: Thu, 3 Sep 2009 17:40:26 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 03 Sep 2009 02:44:02 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcosepFTon981gHnR2mGAC5djcCx8Q==
Thread-topic: [Xen-devel] [PATCH][PV_OPS_DOM0]Fix the host S3 resume hang
Fix the host S3 resume hang

Current pv-ops dom0 is doing ioapic suspend/resume while doing host S3. The
ioapic resume will cause a guest_write_ioapic error and hang the S3 resume
process. It is actually not necessary for dom0 to do ioapic suspend/resume
because hypervisor already cover this.

Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>

diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 18d957e..c2756d2 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3119,6 +3119,9 @@ static int ioapic_suspend(struct sys_device *dev, 
pm_message_t state)
        struct sysfs_ioapic_data *data;
        int i;
 
+       if (xen_initial_domain())
+               return 0;
+
        data = container_of(dev, struct sysfs_ioapic_data, dev);
        entry = data->entry;
        for (i = 0; i < nr_ioapic_registers[dev->id]; i ++, entry ++ )
@@ -3135,6 +3138,9 @@ static int ioapic_resume(struct sys_device *dev)
        union IO_APIC_reg_00 reg_00;
        int i;
 
+       if (xen_initial_domain())
+               return 0;
+
        data = container_of(dev, struct sysfs_ioapic_data, dev);
        entry = data->entry;
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>