[PATCH v2 0/3] arm64/boot: Forbid the use of BSS symbols in startup code

Ard Biesheuvel ardb+git at google.com
Thu May 8 04:43:29 PDT 2025


From: Ard Biesheuvel <ardb at kernel.org>

Move any variables accessed or assigned by the startup code out of BSS,
and into .data, so that we can forbid the use of BSS variables
altogether, by ASSERT()'ing in the linker script that each symbol made
available to the startup code lives before __bss_start in the linker
map.

Changes since v1:
- fix build error due to missing declaration in #1
- work around Clang complaining about the ASSERT() expression in the
  linker script

Cc: Yeoreum Yun <yeoreum.yun at arm.com>

Ard Biesheuvel (3):
  arm64/boot: Move init_pgdir[] and init_idmap_pgdir[] into __pi_
    namespace
  arm64/boot: Move global CPU override variables out of BSS
  arm64/boot: Disallow BSS exports to startup code

 arch/arm64/include/asm/pgtable.h |  2 -
 arch/arm64/kernel/cpufeature.c   | 22 +++----
 arch/arm64/kernel/head.S         |  6 +-
 arch/arm64/kernel/image-vars.h   | 66 ++++++++++----------
 arch/arm64/kernel/pi/pi.h        |  1 +
 arch/arm64/kernel/vmlinux.lds.S  | 10 +--
 6 files changed, 54 insertions(+), 53 deletions(-)


base-commit: 363cd2b81cfdf706bbfc9ec78db000c9b1ecc552
-- 
2.49.0.987.g0cc8ee98dc-goog




More information about the linux-arm-kernel mailing list