svn commit: r184004 - projects/releng_6_xen/sys/i386/xen

Kip Macy kmacy at FreeBSD.org
Fri Oct 17 23:23:50 UTC 2008


Author: kmacy
Date: Fri Oct 17 23:23:50 2008
New Revision: 184004
URL: http://svn.freebsd.org/changeset/base/184004

Log:
  Don't set nkpt higher than the max required to map KVA

Modified:
  projects/releng_6_xen/sys/i386/xen/xen_machdep.c

Modified: projects/releng_6_xen/sys/i386/xen/xen_machdep.c
==============================================================================
--- projects/releng_6_xen/sys/i386/xen/xen_machdep.c	Fri Oct 17 23:03:35 2008	(r184003)
+++ projects/releng_6_xen/sys/i386/xen/xen_machdep.c	Fri Oct 17 23:23:50 2008	(r184004)
@@ -836,8 +836,12 @@ initvalues(start_info_t *startinfo)
 	unsigned long i;
 	int ncpus;
 
-	nkpt = min(max((startinfo->nr_pages >> NPGPTD_SHIFT), nkpt),
-	    NPGPTD*NPDEPG - KPTDI);
+	nkpt = min(
+		min(
+			max((startinfo->nr_pages >> NPGPTD_SHIFT), nkpt),
+		    NPGPTD*NPDEPG - KPTDI),
+		    (HYPERVISOR_VIRT_START - KERNBASE) >> PDRSHIFT);
+	
 #ifdef SMP
 	ncpus = MAXCPU;
 #else
@@ -973,6 +977,8 @@ initvalues(start_info_t *startinfo)
 	     i++, cur_space += PAGE_SIZE) {
 		pdir = (offset + i) / NPDEPG;
 		curoffset = ((offset + i) % NPDEPG);
+		if (((offset + i) << PDRSHIFT) == VM_MAX_KERNEL_ADDRESS)
+			break;
 		
 		/*
 		 * make sure that all the initial page table pages


More information about the svn-src-projects mailing list