Author: rrs
Date: Thu Jan 28 14:09:16 2010
New Revision: 203115
URL: http://svn.freebsd.org/changeset/base/203115

Log:
  Fix two of the extended memory hacks. The copy pages
  routine in one place was setting the valid2 bit to
  2 not 1. This meant the PTE was NOT valid and so
  you would crash.
  
  In Zero Page there was a incorrect setting of
  the valid bit AFTER the actual zero (opps)..
  
  Hopefully this will fix the 0xc0000000 crashes
  that I have been seeing (unless of course there are
  other problems with these old hacks of mine to get
  to memory above 512Meg)

Modified:
  head/sys/mips/mips/pmap.c

Modified: head/sys/mips/mips/pmap.c
==============================================================================
--- head/sys/mips/mips/pmap.c   Thu Jan 28 14:03:06 2010        (r203114)
+++ head/sys/mips/mips/pmap.c   Thu Jan 28 14:09:16 2010        (r203115)
@@ -2273,8 +2273,8 @@ pmap_zero_page(vm_page_t m)
                PMAP_LGMEM_LOCK(sysm);
                sched_pin();
                sysm->CMAP1 = mips_paddr_to_tlbpfn(phys) | PTE_RW | PTE_V | 
PTE_G | PTE_W | PTE_CACHE;
-               pmap_TLB_update_kernel((vm_offset_t)sysm->CADDR1, sysm->CMAP1);
                sysm->valid1 = 1;
+               pmap_TLB_update_kernel((vm_offset_t)sysm->CADDR1, sysm->CMAP1);
                bzero(sysm->CADDR1, PAGE_SIZE);
                pmap_TLB_invalidate_kernel((vm_offset_t)sysm->CADDR1);
                sysm->CMAP1 = 0;
@@ -2446,7 +2446,7 @@ pmap_copy_page(vm_page_t src, vm_page_t 
                                va_src = MIPS_PHYS_TO_CACHED(phy_src);
                                sysm->CMAP2 = mips_paddr_to_tlbpfn(phy_dst) | 
PTE_RW | PTE_V | PTE_G | PTE_W | PTE_CACHE;
                                
pmap_TLB_update_kernel((vm_offset_t)sysm->CADDR2, sysm->CMAP2);
-                               sysm->valid2 = 2;
+                               sysm->valid2 = 1;
                                va_dst = (vm_offset_t)sysm->CADDR2;
                        } else if (phy_dst < MIPS_KSEG0_LARGEST_PHYS) {
                                /* one side needs mapping - src */
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to