# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1200596743 25200
# Node ID 851c52be63df0c415aadd4db96019a1e405c8c3d
# Parent db81d2f94866ef1a74c07dff116fa7445569e6fc
[IA64] domheap: Allocate PV privregs pages from domain heap
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
xen/arch/ia64/xen/domain.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff -r db81d2f94866 -r 851c52be63df xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Thu Jan 17 12:05:43 2008 -0700
+++ b/xen/arch/ia64/xen/domain.c Thu Jan 17 12:05:43 2008 -0700
@@ -400,7 +400,7 @@ void relinquish_vcpu_resources(struct vc
if (HAS_PERVCPU_VHPT(v->domain))
pervcpu_vhpt_free(v);
if (v->arch.privregs != NULL) {
- free_xenheap_pages(v->arch.privregs,
+ free_domheap_pages(virt_to_page(v->arch.privregs),
get_order_from_shift(XMAPPEDREGS_SHIFT));
v->arch.privregs = NULL;
}
@@ -501,6 +501,7 @@ int vcpu_late_initialise(struct vcpu *v)
int vcpu_late_initialise(struct vcpu *v)
{
struct domain *d = v->domain;
+ struct page_info *page;
int rc, order;
if (HAS_PERVCPU_VHPT(d)) {
@@ -511,7 +512,11 @@ int vcpu_late_initialise(struct vcpu *v)
/* Create privregs page. */
order = get_order_from_shift(XMAPPEDREGS_SHIFT);
- v->arch.privregs = alloc_xenheap_pages(order);
+ page = alloc_domheap_pages(NULL, order, 0);
+ if (page == NULL)
+ return -ENOMEM;
+
+ v->arch.privregs = page_to_virt(page);
BUG_ON(v->arch.privregs == NULL);
memset(v->arch.privregs, 0, 1 << XMAPPEDREGS_SHIFT);
vcpu_share_privregs_with_guest(v);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|