hvm: handle PoD and grant pages in HVMOP_get_mem_type
authorOlaf Hering <olaf@aepfle.de>
Fri, 19 Oct 2012 14:09:05 +0000 (16:09 +0200)
committerOlaf Hering <olaf@aepfle.de>
Fri, 19 Oct 2012 14:09:05 +0000 (16:09 +0200)
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>
xen/arch/x86/hvm/hvm.c

index b83e33664e74732737e7ae1b8297978f3914f436..c7ce8104c7e8d209f82d3081cc40b9a0a3c349ca 100644 (file)
@@ -4086,6 +4086,10 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
                 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;