Message ID | 20240802121443.1531693-5-ayan.kumar.halder@amd.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xen: arm: Split MMU code in preparation for MPU work (part 2) | expand |
Hi, On 02/08/2024 13:14, Ayan Kumar Halder wrote: > All the EL2 MMU specific registers are enclosed within CONFIG_MMU. > > Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com> > --- > xen/arch/arm/traps.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c > index aac6c599f8..766aacee77 100644 > --- a/xen/arch/arm/traps.c > +++ b/xen/arch/arm/traps.c > @@ -919,12 +919,14 @@ static void _show_registers(const struct cpu_user_regs *regs, > #endif > } > printk(" VTCR_EL2: %"PRIregister"\n", READ_SYSREG(VTCR_EL2)); > - printk(" VTTBR_EL2: %016"PRIx64"\n", ctxt->vttbr_el2); Can you #ifdef the field vttrb_el2 if it is not meant to be used? > printk("\n"); > > printk(" SCTLR_EL2: %"PRIregister"\n", READ_SYSREG(SCTLR_EL2)); > printk(" HCR_EL2: %"PRIregister"\n", READ_SYSREG(HCR_EL2)); > +#ifdef CONFIG_MMU > + printk(" VTTBR_EL2: %016"PRIx64"\n", ctxt->vttbr_el2); VTCR_EL2 and VTTBR_EL2 needs to be read together. So I would prefer the printk is not moved. > printk(" TTBR0_EL2: %016"PRIx64"\n", READ_SYSREG64(TTBR0_EL2)); > +#endif > printk("\n");> printk(" ESR_EL2: %"PRIregister"\n", regs->hsr); > printk(" HPFAR_EL2: %"PRIregister"\n", READ_SYSREG(HPFAR_EL2)); > @@ -956,7 +958,9 @@ void show_registers(const struct cpu_user_regs *regs) > if ( guest_mode(regs) && is_32bit_domain(current->domain) ) > ctxt.ifsr32_el2 = READ_SYSREG(IFSR32_EL2); > #endif > +#ifdef CONFIG_MMU > ctxt.vttbr_el2 = READ_SYSREG64(VTTBR_EL2); > +#endif > > _show_registers(regs, &ctxt, guest_mode(regs), current); > } Cheers,
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index aac6c599f8..766aacee77 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -919,12 +919,14 @@ static void _show_registers(const struct cpu_user_regs *regs, #endif } printk(" VTCR_EL2: %"PRIregister"\n", READ_SYSREG(VTCR_EL2)); - printk(" VTTBR_EL2: %016"PRIx64"\n", ctxt->vttbr_el2); printk("\n"); printk(" SCTLR_EL2: %"PRIregister"\n", READ_SYSREG(SCTLR_EL2)); printk(" HCR_EL2: %"PRIregister"\n", READ_SYSREG(HCR_EL2)); +#ifdef CONFIG_MMU + printk(" VTTBR_EL2: %016"PRIx64"\n", ctxt->vttbr_el2); printk(" TTBR0_EL2: %016"PRIx64"\n", READ_SYSREG64(TTBR0_EL2)); +#endif printk("\n"); printk(" ESR_EL2: %"PRIregister"\n", regs->hsr); printk(" HPFAR_EL2: %"PRIregister"\n", READ_SYSREG(HPFAR_EL2)); @@ -956,7 +958,9 @@ void show_registers(const struct cpu_user_regs *regs) if ( guest_mode(regs) && is_32bit_domain(current->domain) ) ctxt.ifsr32_el2 = READ_SYSREG(IFSR32_EL2); #endif +#ifdef CONFIG_MMU ctxt.vttbr_el2 = READ_SYSREG64(VTTBR_EL2); +#endif _show_registers(regs, &ctxt, guest_mode(regs), current); }
All the EL2 MMU specific registers are enclosed within CONFIG_MMU. Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com> --- xen/arch/arm/traps.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)