svn commit: r185245 - projects/release_6_3_xen/sys/i386/xen

Kip Macy kmacy at FreeBSD.org
Sun Nov 23 22:47:27 PST 2008


Author: kmacy
Date: Mon Nov 24 06:47:27 2008
New Revision: 185245
URL: http://svn.freebsd.org/changeset/base/185245

Log:
  - ensure that all pages used as page tables are bzeroed and then mapped read-only
  - make sure that sysmaps->{CADDR1, CADDR2} are initialized

Modified:
  projects/release_6_3_xen/sys/i386/xen/pmap.c
  projects/release_6_3_xen/sys/i386/xen/xen_machdep.c

Modified: projects/release_6_3_xen/sys/i386/xen/pmap.c
==============================================================================
--- projects/release_6_3_xen/sys/i386/xen/pmap.c	Mon Nov 24 02:21:50 2008	(r185244)
+++ projects/release_6_3_xen/sys/i386/xen/pmap.c	Mon Nov 24 06:47:27 2008	(r185245)
@@ -237,7 +237,7 @@ struct sysmaps {
 static struct sysmaps sysmaps_pcpu[MAXCPU];
 pt_entry_t *CMAP1 = 0;
 static pt_entry_t *CMAP3;
-caddr_t CADDR1 = 0, ptvmmap = 0;
+caddr_t ptvmmap = 0;
 static caddr_t CADDR3;
 struct msgbuf *msgbufp = 0;
 
@@ -438,14 +438,11 @@ pmap_bootstrap(firstaddr, loadaddr)
 		mtx_init(&sysmaps->lock, "SYSMAPS", NULL, MTX_DEF);
 		SYSMAP(caddr_t, sysmaps->CMAP1, sysmaps->CADDR1, 1)
 		SYSMAP(caddr_t, sysmaps->CMAP2, sysmaps->CADDR2, 1)
+		PT_SET_MA(sysmaps->CADDR1, 0);
+		PT_SET_MA(sysmaps->CADDR2, 0);
 	}
-	SYSMAP(caddr_t, CMAP1, CADDR1, 1)
 	SYSMAP(caddr_t, CMAP3, CADDR3, 1)
-#ifdef XEN
-	PT_SET_MA(CADDR3, 0);
-#else 
-	 *CMAP3 = 0;
-#endif
+	    PT_SET_MA(CADDR3, 0);
 	/*
 	 * Crashdump maps.
 	 */
@@ -470,12 +467,6 @@ pmap_bootstrap(firstaddr, loadaddr)
 	mtx_init(&PMAP2mutex, "PMAP2", NULL, MTX_DEF);
 
 	virtual_avail = va;
-#ifdef XEN
-	PT_SET_MA(CADDR1, 0);
-#else	
-	*CMAP1 = 0;
-#endif
-	
 #if !defined(XEN)
 #ifdef XBOX
 	/* FIXME: This is gross, but needed for the XBOX. Since we are in such

Modified: projects/release_6_3_xen/sys/i386/xen/xen_machdep.c
==============================================================================
--- projects/release_6_3_xen/sys/i386/xen/xen_machdep.c	Mon Nov 24 02:21:50 2008	(r185244)
+++ projects/release_6_3_xen/sys/i386/xen/xen_machdep.c	Mon Nov 24 06:47:27 2008	(r185245)
@@ -1010,10 +1010,10 @@ initvalues(start_info_t *startinfo)
 		 * make sure that all the initial page table pages
 		 * have been zeroed
 		 */
-		PT_SET_MA(cur_space_pt,
+		PT_SET_MA(cur_space,
 		    xpmap_ptom(VTOP(cur_space)) | PG_V | PG_RW);
-		bzero((char *)cur_space_pt, PAGE_SIZE);
-		PT_SET_MA(cur_space_pt, (vm_paddr_t)0);
+		bzero((char *)cur_space, PAGE_SIZE);
+		PT_SET_MA(cur_space, (vm_paddr_t)0);
 		xen_pt_pin(xpmap_ptom(VTOP(cur_space)));
 		xen_queue_pt_update((vm_paddr_t)(IdlePTDnewma[pdir] +
 			curoffset*sizeof(vm_paddr_t)), 


More information about the svn-src-projects mailing list