18 lines
737 B
Diff
18 lines
737 B
Diff
Index: xen-3.0.4-testing/xen/arch/x86/domain.c
|
|
===================================================================
|
|
--- xen-3.0.4-testing.orig/xen/arch/x86/domain.c
|
|
+++ xen-3.0.4-testing/xen/arch/x86/domain.c
|
|
@@ -455,8 +455,10 @@ int arch_domain_create(struct domain *d)
|
|
fail:
|
|
free_xenheap_page(d->shared_info);
|
|
#ifdef __x86_64__
|
|
- free_domheap_page(virt_to_page(d->arch.mm_perdomain_l2));
|
|
- free_domheap_page(virt_to_page(d->arch.mm_perdomain_l3));
|
|
+ if (d->arch.mm_perdomain_l2)
|
|
+ free_domheap_page(virt_to_page(d->arch.mm_perdomain_l2));
|
|
+ if (d->arch.mm_perdomain_l3)
|
|
+ free_domheap_page(virt_to_page(d->arch.mm_perdomain_l3));
|
|
#endif
|
|
free_xenheap_pages(d->arch.mm_perdomain_pt, pdpt_order);
|
|
return rc;
|