Date: Mon, 24 Nov 2008 06:47:27 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r185245 - projects/release_6_3_xen/sys/i386/xen Message-ID: <200811240647.mAO6lRI2077099@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)),
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811240647.mAO6lRI2077099>