SHA256
1
0
forked from pool/xen
xen/heaplock.patch
Charles Arnold eeeeaf88a6 - bnc#636231 - XEN: Unable to disconnect/remove CDROM drive from VM
xend-devid-or-name.patch

- Upstream patches from Jan
  22019-x86-cpuidle-online-check.patch
  22051-x86-forced-EOI.patch
  22067-x86-irq-domain.patch
  22068-vtd-irte-RH-bit.patch
  22071-ept-get-entry-lock.patch
  22084-x86-xsave-off.patch

- bnc#638465 - hypervisor panic in memory handling
  heaplock.patch

- Update to Xen 4.0.1.  This is a bug fix release.

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=73
2010-09-22 14:40:08 +00:00

42 lines
983 B
Diff

From: Keir Fraser <keir.fraser@eu.citrix.com>
References: bnc#638465
--- a/xen/common/page_alloc.c Wed Sep 01 10:22:05 2010 +0100
+++ b/xen/common/page_alloc.c Tue Sep 07 13:55:34 2010 +0100
@@ -378,8 +378,6 @@
total_avail_pages -= request;
ASSERT(total_avail_pages >= 0);
- spin_unlock(&heap_lock);
-
cpus_clear(mask);
for ( i = 0; i < (1 << order); i++ )
@@ -400,6 +398,8 @@
pg[i].u.inuse.type_info = 0;
page_set_owner(&pg[i], NULL);
}
+
+ spin_unlock(&heap_lock);
if ( unlikely(!cpus_empty(mask)) )
{
@@ -496,6 +496,8 @@
ASSERT(order <= MAX_ORDER);
ASSERT(node >= 0);
+ spin_lock(&heap_lock);
+
for ( i = 0; i < (1 << order); i++ )
{
/*
@@ -522,8 +524,6 @@
if ( pg[i].u.free.need_tlbflush )
pg[i].tlbflush_timestamp = tlbflush_current_time();
}
-
- spin_lock(&heap_lock);
avail[node][zone] += 1 << order;
total_avail_pages += 1 << order;