Mailing List Archive

[xen master] xen/arm: mm: Allow dump_hyp_walk() to work on the current root table
commit 88168c418c3bde7d51797e7cf875d528a8aa0eb1
Author: Julien Grall <jgrall@amazon.com>
AuthorDate: Thu Dec 15 11:45:18 2022 +0000
Commit: Julien Grall <jgrall@amazon.com>
CommitDate: Thu Dec 15 11:46:37 2022 +0000

xen/arm: mm: Allow dump_hyp_walk() to work on the current root table

dump_hyp_walk() is used to print the tables walk in case of the data or
instruction abort.

Those abort are not limited to the runtime and could happen at early
boot. However, the current implementation of dump_hyp_walk() check
that the TTBR matches the runtime page tables.

Therefore, early abort will result to a secondary abort and not
print the table walks.

Given that the function is called in the abort path, there is no
reason for us to keep the BUG_ON() in any form. So drop it.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
---
xen/arch/arm/mm.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 16ec1d0fe9..0fc6f2992d 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -266,13 +266,11 @@ void dump_pt_walk(paddr_t ttbr, paddr_t addr,
void dump_hyp_walk(vaddr_t addr)
{
uint64_t ttbr = READ_SYSREG64(TTBR0_EL2);
- lpae_t *pgtable = THIS_CPU_PGTABLE;

printk("Walking Hypervisor VA 0x%"PRIvaddr" "
"on CPU%d via TTBR 0x%016"PRIx64"\n",
addr, smp_processor_id(), ttbr);

- BUG_ON( virt_to_maddr(pgtable) != ttbr );
dump_pt_walk(ttbr, addr, HYP_PT_ROOT_LEVEL, 1);
}

--
generated by git-patchbot for /home/xen/git/xen.git#master