Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Oct 2014 21:02:40 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r273558 - head/sys/i386/i386
Message-ID:  <201410232102.s9NL2edr059693@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: alc
Date: Thu Oct 23 21:02:40 2014
New Revision: 273558
URL: https://svnweb.freebsd.org/changeset/base/273558

Log:
  Under PAE ULONG is insufficient for representing the physical memory size.  Use QUAD
  for "hw.physmem" so that a physical memory size greater than 4 GB can be specified
  from the boot loader.

Modified:
  head/sys/i386/i386/machdep.c

Modified: head/sys/i386/i386/machdep.c
==============================================================================
--- head/sys/i386/i386/machdep.c	Thu Oct 23 20:43:16 2014	(r273557)
+++ head/sys/i386/i386/machdep.c	Thu Oct 23 21:02:40 2014	(r273558)
@@ -2463,10 +2463,10 @@ static void
 getmemsize(int first)
 {
 	int has_smap, off, physmap_idx, pa_indx, da_indx;
-	u_long physmem_tunable, memtest;
+	u_long memtest;
 	vm_paddr_t physmap[PHYSMAP_SIZE];
 	pt_entry_t *pte;
-	quad_t dcons_addr, dcons_size;
+	quad_t dcons_addr, dcons_size, physmem_tunable;
 #ifndef XEN
 	int hasbrokenint12, i, res;
 	u_int extmem;
@@ -2650,7 +2650,7 @@ physmap_done:
 	Maxmem = MAXMEM / 4;
 #endif
 
-	if (TUNABLE_ULONG_FETCH("hw.physmem", &physmem_tunable))
+	if (TUNABLE_QUAD_FETCH("hw.physmem", &physmem_tunable))
 		Maxmem = atop(physmem_tunable);
 
 	/*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410232102.s9NL2edr059693>