From 6e8900976d13f9c7c5c46d08ead92d58708245b7 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Fri, 18 Oct 2024 17:53:14 -0400 Subject: [PATCH] bootloader: Actually ignore memory from ranges partially beyond 4GB. It was added to ignored_physical_memory but not actually trimmed. --- src/system/boot/loader/kernel_args.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/system/boot/loader/kernel_args.cpp b/src/system/boot/loader/kernel_args.cpp index 8792e4a70c..13c688ae3a 100644 --- a/src/system/boot/loader/kernel_args.cpp +++ b/src/system/boot/loader/kernel_args.cpp @@ -368,13 +368,14 @@ ignore_physical_memory_ranges_beyond_4gb() continue; } - if (kLimit - range.start < range.size) { + if ((range.start + range.size) >= kLimit) { // the range is partially beyond the limit dprintf("ignore_physical_memory_ranges_beyond_4gb(): ignoring " "range: %#" B_PRIx64 " - %#" B_PRIx64 "\n", kLimit, range.start + range.size); gKernelArgs.ignored_physical_memory += range.size - (kLimit - range.start); + range.size = kLimit - range.start; } break;