33 lines
1.4 KiB
Diff
33 lines
1.4 KiB
Diff
|
# HG changeset patch
|
||
|
# User Olaf Hering <olaf@aepfle.de>
|
||
|
# Date 1350655745 -7200
|
||
|
# Node ID 4ae08ca5500f68d19a689c06489024157300d7b0
|
||
|
# Parent 478ba3f146df23d2cfa95fc603d0b4b9d21ba15d
|
||
|
hvm: handle PoD and grant pages in HVMOP_get_mem_type
|
||
|
|
||
|
During kexec in a ballooned PVonHVM guest the new kernel needs to check
|
||
|
each pfn if its backed by a mfn to find ballooned pages. Currently all
|
||
|
PoD and grant pages will appear as HVMMEM_mmio_dm, so the new kernel has
|
||
|
to assume they are ballooned. This is wrong: PoD pages may turn into
|
||
|
real RAM at runtime, grant pages are also RAM.
|
||
|
|
||
|
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||
|
Acked-by: Tim Deegan <tim@xen.org>
|
||
|
Committed-by: Tim Deegan <tim@xen.org>
|
||
|
|
||
|
Index: xen-4.2.0-testing/xen/arch/x86/hvm/hvm.c
|
||
|
===================================================================
|
||
|
--- xen-4.2.0-testing.orig/xen/arch/x86/hvm/hvm.c
|
||
|
+++ xen-4.2.0-testing/xen/arch/x86/hvm/hvm.c
|
||
|
@@ -4135,6 +4135,10 @@ long do_hvm_op(unsigned long op, XEN_GUE
|
||
|
a.mem_type = HVMMEM_ram_ro;
|
||
|
else if ( p2m_is_ram(t) )
|
||
|
a.mem_type = HVMMEM_ram_rw;
|
||
|
+ else if ( p2m_is_magic(t) )
|
||
|
+ a.mem_type = HVMMEM_ram_rw;
|
||
|
+ else if ( p2m_is_grant(t) )
|
||
|
+ a.mem_type = HVMMEM_ram_rw;
|
||
|
else
|
||
|
a.mem_type = HVMMEM_mmio_dm;
|
||
|
rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
|