[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20250304042634.591375-1-kpark3469@gmail.com>
Date: Tue, 4 Mar 2025 08:26:34 +0400
From: kpark3469@...il.com
To: ardb@...nel.org,
linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Cc: catalin.marinas@....com,
will@...nel.org,
keun-o.park@...im.com
Subject: [PATCH v2] arm64: kaslr: warning linear region randomization on failure
From: Keuno Park <keun-o.park@...im.com>
On systems using 4KB pages and having 39 VA_BITS, linear_region_size
gets 256GiB space. It was observed that some SoCs such as Qualcomm
QCM8550 returns 40bits of PA range from MMFR0_EL1. This leads range
value to have minus as the variable range is s64, so that all the
calculations for randomizing linear address space are skipped.
As a result of this, the kernel's linear region is not randomized.
For hotplug memory users, kernel needs to inform that linear region
is not randomized. However, if CONFIG_MEMORY_HOTPLUG is turned off,
then kernel tries to fall back to the legacy way to randomize linear
region.
Change-Id: Ib29e45f44928937881d514fb87b4cac828b5a3f5
Fixes: 97d6786e0669 ("arm64: mm: account for hotplug memory when randomizing the linear region")
Signed-off-by: Keuno Park <keun-o.park@...im.com>
---
arch/arm64/mm/init.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index 9c0b8d9558fc..848790a9e75e 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -290,6 +290,17 @@ void __init arm64_memblock_init(void)
s64 range = linear_region_size -
BIT(id_aa64mmfr0_parange_to_phys_shift(parange));
+ if (range < 0) {
+ if (IS_ENABLED(CONFIG_MEMORY_HOTPLUG)) {
+ WARN(true, "linear region is not randomized due to bigger parange\n");
+ } else {
+ pr_warn("falling back to the range considering on-boot DRAM size\n");
+ range = linear_region_size -
+ (memblock_end_of_DRAM() -
+ memblock_start_of_DRAM());
+ }
+ }
+
/*
* If the size of the linear region exceeds, by a sufficient
* margin, the size of the region that the physical memory can
--
2.34.1
Powered by blists - more mailing lists