summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kern/startup.c7
1 files changed, 6 insertions, 1 deletions
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;