From owner-svn-src-head@FreeBSD.ORG Thu Jan 28 14:09:17 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37C7F106566C; Thu, 28 Jan 2010 14:09:17 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 269CA8FC18; Thu, 28 Jan 2010 14:09:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0SE9HIG060771; Thu, 28 Jan 2010 14:09:17 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0SE9HJH060769; Thu, 28 Jan 2010 14:09:17 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201001281409.o0SE9HJH060769@svn.freebsd.org> From: Randall Stewart Date: Thu, 28 Jan 2010 14:09:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r203115 - head/sys/mips/mips X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Jan 2010 14:09:17 -0000 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 */