From d24bdba9b96d862afc0a5c26d8e46a13c37bf4b7 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 21 Oct 2008 10:04:40 +0100 Subject: pv-on-hvm: Avoid rwlock livelock on save/restore. Signed-off-by: Keir Fraser --- unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'unmodified_drivers') diff --git a/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c b/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c index 92b64e2589..08bf645ef7 100644 --- a/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c +++ b/unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c @@ -11,12 +11,6 @@ struct ap_suspend_info { atomic_t nr_spinning; }; -/* - * Use a rwlock to protect the hypercall page from being executed in AP context - * while the BSP is re-initializing it after restore. - */ -static DEFINE_RWLOCK(suspend_lock); - #ifdef CONFIG_SMP /* @@ -33,12 +27,8 @@ static void ap_suspend(void *_info) atomic_inc(&info->nr_spinning); mb(); - while (info->do_spin) { + while (info->do_spin) cpu_relax(); - read_lock(&suspend_lock); - HYPERVISOR_yield(); - read_unlock(&suspend_lock); - } mb(); atomic_dec(&info->nr_spinning); @@ -61,9 +51,7 @@ static int bp_suspend(void) suspend_cancelled = HYPERVISOR_suspend(0); if (!suspend_cancelled) { - write_lock(&suspend_lock); platform_pci_resume(); - write_unlock(&suspend_lock); gnttab_resume(); irq_resume(); } -- cgit v1.2.3