Re: [PATCH v3 13/18] xen/arm: mm: Allow xen_pt_update() to work with the current root table
On Mon, 12 Dec 2022, Julien Grall wrote: > From: Julien Grall > > At the moment, xen_pt_update() will only work on the runtime page tables. > In follow-up patches, we will also want to use the helper to update > the boot page tables. > > All the existing callers of xen_pt_update() expects to modify the > current page-tables. Therefore, we can read the root physical address > directly from TTBR0_EL2. > > Signed-off-by: Julien Grall Acked-by: Stefano Stabellini > --- > > Changes in v2: > - Patch added > --- > xen/arch/arm/mm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c > index cc11f5c639e6..26d6b70410c5 100644 > --- a/xen/arch/arm/mm.c > +++ b/xen/arch/arm/mm.c > @@ -1114,7 +1114,7 @@ static int xen_pt_update(unsigned long virt, > * > * XXX: Add a check. > */ > -const mfn_t root = virt_to_mfn(THIS_CPU_PGTABLE); > +const mfn_t root = maddr_to_mfn(READ_SYSREG64(TTBR0_EL2)); > > /* > * The hardware was configured to forbid mapping both writeable and > -- > 2.38.1 >
[PATCH v3 13/18] xen/arm: mm: Allow xen_pt_update() to work with the current root table
From: Julien Grall At the moment, xen_pt_update() will only work on the runtime page tables. In follow-up patches, we will also want to use the helper to update the boot page tables. All the existing callers of xen_pt_update() expects to modify the current page-tables. Therefore, we can read the root physical address directly from TTBR0_EL2. Signed-off-by: Julien Grall --- Changes in v2: - Patch added --- xen/arch/arm/mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index cc11f5c639e6..26d6b70410c5 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -1114,7 +1114,7 @@ static int xen_pt_update(unsigned long virt, * * XXX: Add a check. */ -const mfn_t root = virt_to_mfn(THIS_CPU_PGTABLE); +const mfn_t root = maddr_to_mfn(READ_SYSREG64(TTBR0_EL2)); /* * The hardware was configured to forbid mapping both writeable and -- 2.38.1