svn commit: r206209 - user/jmallett/octeon/sys/mips/mips
Juli Mallett
jmallett at FreeBSD.org
Mon Apr 5 20:01:21 UTC 2010
Author: jmallett
Date: Mon Apr 5 20:01:21 2010
New Revision: 206209
URL: http://svn.freebsd.org/changeset/base/206209
Log:
o) Make it clear that CMAP1 and CMAP2 are initialized to PG_G.
o) Set PG_W correctly (not that it matters) in one CMAP1 use.
XXX We really should be updating the page table for these mappings, not just
putting them in the TLB. With random replacement, it's quite possible that
inserting the second entry would invalidate the first one, even if it is
terribly unlikely, and in the case where we map two pages, that's an issue.
Modified:
user/jmallett/octeon/sys/mips/mips/pmap.c
Modified: user/jmallett/octeon/sys/mips/mips/pmap.c
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/pmap.c Mon Apr 5 19:59:05 2010 (r206208)
+++ user/jmallett/octeon/sys/mips/mips/pmap.c Mon Apr 5 20:01:21 2010 (r206209)
@@ -389,8 +389,8 @@ again:
*/
if (memory_larger_than_512meg) {
for (i = 0; i < MAXCPU; i++) {
- pte_set(&sysmap_lmem[i].CMAP1, PG_G);
- pte_set(&sysmap_lmem[i].CMAP2, PG_G);
+ sysmap_lmem[i].CMAP1 = PG_G;
+ sysmap_lmem[i].CMAP2 = PG_G;
sysmap_lmem[i].CADDR1 = (caddr_t)virtual_avail;
virtual_avail += PAGE_SIZE;
sysmap_lmem[i].CADDR2 = (caddr_t)virtual_avail;
@@ -2175,7 +2175,7 @@ pmap_kenter_temporary(vm_paddr_t pa, int
cpu = PCPU_GET(cpuid);
sysm = &sysmap_lmem[cpu];
/* Since this is for the debugger, no locks or any other fun */
- sysm->CMAP1 = TLBLO_PA_TO_PFN(pa) | PG_D | PG_V | PG_G | PG_G | PG_C_CNC;
+ sysm->CMAP1 = TLBLO_PA_TO_PFN(pa) | PG_D | PG_V | PG_G | PG_W | PG_C_CNC;
sysm->valid1 = 1;
pmap_update_page(kernel_pmap, (vm_offset_t)sysm->CADDR1, sysm->CMAP1);
va = (vm_offset_t)sysm->CADDR1;
More information about the svn-src-user
mailing list