On 19/07/16 18:15, Jonathan Daugherty wrote:
dump_guest_s1_walk intends to walk to level 2 page table entries but was failing to do so because of a check that caused level 2 page table descriptors to be ignored. This change fixes the check so that level 2 page table walks occur as intended by ignoring descriptors unless their low two bits match the expected sequence [0,1]. For more information, see the ARMv7-A ARM, section B3.5.
NIT: Could you specify the version of the spec (i.e something similar to ARM DDI 0406C.c)?
Also, to be precise the section would be B3.5.1.
Signed-off-by: Jonathan Daugherty <j...@galois.com>
Reviewed-by: Julien Grall <julien.gr...@arm.com> Regards,
--- xen/arch/arm/traps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 0c10c4d..dfb1949 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -2350,7 +2350,7 @@ void dump_guest_s1_walk(struct domain *d, vaddr_t addr) printk("1ST[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n", offset, pfn_to_paddr(mfn_x(mfn)), first[offset]); if ( !(first[offset] & 0x1) || - !(first[offset] & 0x2) ) + (first[offset] & 0x2) ) goto done; mfn = p2m_lookup(d, _gfn(paddr_to_pfn(first[offset])), NULL);
-- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel