Message ID | 20221212095523.52683-15-julien@xen.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xen/arm: Don't switch TTBR while the MMU is on | expand |
On Mon, 12 Dec 2022, Julien Grall wrote: > From: Julien Grall <jgrall@amazon.com> > > 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> > --- > Changes in v2: > - Patch added > --- > 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 26d6b70410c5..0cf7ad4f0e8c 100644 > --- a/xen/arch/arm/mm.c > +++ b/xen/arch/arm/mm.c > @@ -280,13 +280,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); > } > > -- > 2.38.1 >
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index 26d6b70410c5..0cf7ad4f0e8c 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -280,13 +280,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); }