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 DDI 0406C.b, section B3.5.1.
Signed-off-by: Jonathan Daugherty <jtd@galois.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
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);