[PATCH v2 1/2] arm64: Move .hyp.rodata outside of the _sdata.._edata range
Quentin Perret
qperret at google.com
Mon Aug 2 06:11:07 PDT 2021
Hi Marc,
On Monday 02 Aug 2021 at 13:38:29 (+0100), Marc Zyngier wrote:
> The HYP rodata section is currently lumped together with the BSS,
> which isn't exactly what is expected (it gets registered with
> kmemleak, for example).
>
> Move it away so that it is actually marked RO. As an added
> benefit, it isn't registered with kmemleak anymore.
2d7bf218ca73 ("KVM: arm64: Add .hyp.data..ro_after_init ELF section")
states explicitly that the hyp ro_after_init section should remain RW in
the host as it is expected to modify it before initializing EL2. But I
can't seem to trigger anything with this patch applied, so I'll look
into this a bit more.
> Fixes: 380e18ade4a5 ("KVM: arm64: Introduce a BSS section for use at Hyp")
Not sure this is the patch to blame?
> Suggested-by: Catalin Marinas <catalin.marinas at arm.com>
> Signed-off-by: Marc Zyngier <maz at kernel.org>
> Cc: stable at vger.kernel.org #5.13
> ---
> arch/arm64/kernel/vmlinux.lds.S | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
> index 709d2c433c5e..f6b1a88245db 100644
> --- a/arch/arm64/kernel/vmlinux.lds.S
> +++ b/arch/arm64/kernel/vmlinux.lds.S
> @@ -181,6 +181,8 @@ SECTIONS
> /* everything from this point to __init_begin will be marked RO NX */
> RO_DATA(PAGE_SIZE)
>
> + HYPERVISOR_DATA_SECTIONS
> +
> idmap_pg_dir = .;
> . += IDMAP_DIR_SIZE;
> idmap_pg_end = .;
> @@ -260,8 +262,6 @@ SECTIONS
> _sdata = .;
> RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_ALIGN)
>
> - HYPERVISOR_DATA_SECTIONS
> -
> /*
> * Data written with the MMU off but read with the MMU on requires
> * cache lines to be invalidated, discarding up to a Cache Writeback
> --
> 2.30.2
Thanks,
Quentin
More information about the linux-arm-kernel
mailing list