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