diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-10-21 10:04:40 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-10-21 10:04:40 +0100 |
commit | d24bdba9b96d862afc0a5c26d8e46a13c37bf4b7 (patch) | |
tree | 42fe8f98aa423685184eaf5d99bb618b6b10acc4 /unmodified_drivers | |
parent | 519c6bedbf32f92042df4e445ebb2b3a6be91d0f (diff) | |
download | xen-d24bdba9b96d862afc0a5c26d8e46a13c37bf4b7.tar.gz xen-d24bdba9b96d862afc0a5c26d8e46a13c37bf4b7.tar.bz2 xen-d24bdba9b96d862afc0a5c26d8e46a13c37bf4b7.zip |
pv-on-hvm: Avoid rwlock livelock on save/restore.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'unmodified_drivers')
-rw-r--r-- | unmodified_drivers/linux-2.6/platform-pci/machine_reboot.c | 14 |
1 files changed, 1 insertions, 13 deletions
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(); } |