Date: Thu, 28 Jan 2010 14:09:17 +0000 (UTC) From: Randall Stewart <rrs@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r203115 - head/sys/mips/mips Message-ID: <201001281409.o0SE9HJH060769@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001281409.o0SE9HJH060769>