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