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

[Xen-devel] [PATCH 20/38] arm: dump a page table walk when va_to_par fails.



Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 xen/include/asm-arm/page.h |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
index bb1729a..f36bf6f 100644
--- a/xen/include/asm-arm/page.h
+++ b/xen/include/asm-arm/page.h
@@ -254,6 +254,9 @@ static inline void flush_guest_tlb(void)
     WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
 }
 
+extern void dump_pt_walk(uint32_t addr);
+extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
+
 /* Ask the MMU to translate a VA for us */
 static inline uint64_t __va_to_par(uint32_t va)
 {
@@ -270,7 +273,11 @@ static inline uint64_t va_to_par(uint32_t va)
 {
     uint64_t par = __va_to_par(va);
     /* It is not OK to call this with an invalid VA */
-    if ( par & PAR_F ) panic_PAR(par, "Hypervisor");
+    if ( par & PAR_F )
+    {
+        dump_pt_walk(va);
+        panic_PAR(par, "Hypervisor");
+    }
     return par;
 }
 
@@ -314,9 +321,6 @@ static inline uint64_t gva_to_ipa(uint32_t va)
 /* Bits in the PAR returned by va_to_par */
 #define PAR_FAULT 0x1
 
-extern void dump_pt_walk(uint32_t addr);
-extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
-
 #endif /* __ASSEMBLY__ */
 
 /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
-- 
1.7.9.1


_______________________________________________
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®.