[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZEujMHRbqXS3gxhY@FVFF77S0Q05N>
Date: Fri, 28 Apr 2023 11:42:56 +0100
From: Mark Rutland <mark.rutland@....com>
To: Ard Biesheuvel <ardb@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will@...nel.org>, Marc Zyngier <maz@...nel.org>,
Ryan Roberts <ryan.roberts@....com>,
Anshuman Khandual <anshuman.khandual@....com>,
Kees Cook <keescook@...omium.org>
Subject: Re: [PATCH v3 03/60] arm64: mm: get rid of kimage_vaddr global
variable
On Tue, Mar 07, 2023 at 03:04:25PM +0100, Ard Biesheuvel wrote:
> We store the address of _text in kimage_vaddr, but since commit
> 09e3c22a86f6889d ("arm64: Use a variable to store non-global mappings
> decision"), we no longer reference this variable from modules so we no
> longer need to export it.
>
> In fact, we don't need it at all so let's just get rid of it.
>
> Signed-off-by: Ard Biesheuvel <ardb@...nel.org>
Acked-by: Mark Rutland <mark.rutland@....com>
Mark.
> ---
> arch/arm64/include/asm/memory.h | 6 ++----
> arch/arm64/kernel/head.S | 2 +-
> arch/arm64/mm/mmu.c | 3 ---
> 3 files changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
> index 78e5163836a0ab95..a4e1d832a15a2d7a 100644
> --- a/arch/arm64/include/asm/memory.h
> +++ b/arch/arm64/include/asm/memory.h
> @@ -182,6 +182,7 @@
> #include <linux/types.h>
> #include <asm/boot.h>
> #include <asm/bug.h>
> +#include <asm/sections.h>
>
> #if VA_BITS > 48
> extern u64 vabits_actual;
> @@ -193,15 +194,12 @@ extern s64 memstart_addr;
> /* PHYS_OFFSET - the physical address of the start of memory. */
> #define PHYS_OFFSET ({ VM_BUG_ON(memstart_addr & 1); memstart_addr; })
>
> -/* the virtual base of the kernel image */
> -extern u64 kimage_vaddr;
> -
> /* the offset between the kernel virtual and physical mappings */
> extern u64 kimage_voffset;
>
> static inline unsigned long kaslr_offset(void)
> {
> - return kimage_vaddr - KIMAGE_VADDR;
> + return (u64)&_text - KIMAGE_VADDR;
> }
>
> static inline bool kaslr_enabled(void)
> diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
> index b98970907226b36c..65cdaaa2c859418f 100644
> --- a/arch/arm64/kernel/head.S
> +++ b/arch/arm64/kernel/head.S
> @@ -482,7 +482,7 @@ SYM_FUNC_START_LOCAL(__primary_switched)
>
> str_l x21, __fdt_pointer, x5 // Save FDT pointer
>
> - ldr_l x4, kimage_vaddr // Save the offset between
> + adrp x4, _text // Save the offset between
> sub x4, x4, x0 // the kernel virtual and
> str_l x4, kimage_voffset, x5 // physical mappings
>
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index 6f9d8898a02516f6..81e1420d2cc13246 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -50,9 +50,6 @@ u64 vabits_actual __ro_after_init = VA_BITS_MIN;
> EXPORT_SYMBOL(vabits_actual);
> #endif
>
> -u64 kimage_vaddr __ro_after_init = (u64)&_text;
> -EXPORT_SYMBOL(kimage_vaddr);
> -
> u64 kimage_voffset __ro_after_init;
> EXPORT_SYMBOL(kimage_voffset);
>
> --
> 2.39.2
>
>
Powered by blists - more mailing lists