[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [BUG] 'o' debug key panics the hypervisor



On 27/08/15 12:29, Roger Pau Monnà wrote:
> Hello,
>
> When using Intel hardware without shared page tables between the IOMMU 
> and EPT (I have not tried if the same happens when sharing the page 
> tables), the following crash happens if I press the 'o' debug key with 
> a HVM guest running. The guest doesn't have any device passed-through.
>
> (XEN) domain1 IOMMU p2m table:
> (XEN) p2m table has 4 levels
> (XEN) Assertion 'pfn_to_pdx(ma >> PAGE_SHIFT) < (DIRECTMAP_SIZE >> 
> PAGE_SHIFT)' failed at /root/src/xen/xen/include/asm/x86_64/page.h:80
> (XEN) ----[ Xen-4.6.0-rc  x86_64  debug=y  Tainted:    C ]----
> (XEN) CPU:    0
> (XEN) RIP:    e008:[<ffff82d080165f20>] map_domain_page+0x1ef/0x5e6
> (XEN) RFLAGS: 0000000000010216   CONTEXT: hypervisor

The use of paddr_to_pfn() in map_vtd_domain_page() is incorrect.

Does this fix the issue?

diff --git a/xen/drivers/passthrough/vtd/x86/vtd.c
b/xen/drivers/passthrough/vtd/x86/vtd.c
index c0d6aab..35cfd89 100644
--- a/xen/drivers/passthrough/vtd/x86/vtd.c
+++ b/xen/drivers/passthrough/vtd/x86/vtd.c
@@ -40,7 +40,7 @@
 
 void *map_vtd_domain_page(u64 maddr)
 {
-    return map_domain_page(_mfn(paddr_to_pfn(maddr)));
+    return __map_domain_page(maddr_to_page(maddr));
 }
 
 void unmap_vtd_domain_page(void *va)


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.