From 5cd316231c1f67366fda26fb302ace306ca3de3f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 1 Jan 2020 13:50:36 +0100 Subject: Cope with machine_info.memory_size overflow * kern/startup.c (setup_main): When memory size overflows machine_info.memory_size, set to maximum size. --- kern/startup.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kern/startup.c b/kern/startup.c index 19bd7bf6..56e05b3f 100644 --- a/kern/startup.c +++ b/kern/startup.c @@ -89,6 +89,7 @@ extern char *kernel_cmdline; void setup_main(void) { thread_t startup_thread; + phys_addr_t memsize; #if MACH_KDB /* @@ -136,7 +137,11 @@ void setup_main(void) mapable_time_init(); machine_info.max_cpus = NCPUS; - machine_info.memory_size = vm_page_mem_size(); /* XXX phys_addr_t -> vm_size_t */ + memsize = vm_page_mem_size(); + machine_info.memory_size = memsize; + if (machine_info.memory_size < memsize) + /* Overflow, report at least 4GB */ + machine_info.memory_size = ~0; machine_info.avail_cpus = 0; machine_info.major_version = KERNEL_MAJOR_VERSION; machine_info.minor_version = KERNEL_MINOR_VERSION; -- cgit v1.2.3