From owner-svn-src-head@FreeBSD.ORG Sun Aug 8 12:23:02 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 7F27D1065673; Sun, 8 Aug 2010 12:23:02 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6E10E8FC15; Sun, 8 Aug 2010 12:23:02 +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 o78CN2Au062685; Sun, 8 Aug 2010 12:23:02 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o78CN2td062683; Sun, 8 Aug 2010 12:23:02 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201008081223.o78CN2td062683@svn.freebsd.org> From: "Jayachandran C." Date: Sun, 8 Aug 2010 12:23:02 +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: r211068 - 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: Sun, 08 Aug 2010 12:23:02 -0000 Author: jchandra Date: Sun Aug 8 12:23:02 2010 New Revision: 211068 URL: http://svn.freebsd.org/changeset/base/211068 Log: loadandclear() for PTEs are not needed on MIPS. The PTEs are software managed and we already take pmap lock for PTE operations(see r210922) Reviewed by: alc Modified: head/sys/mips/mips/pmap.c Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Sun Aug 8 12:19:49 2010 (r211067) +++ head/sys/mips/mips/pmap.c Sun Aug 8 12:23:02 2010 (r211068) @@ -1352,9 +1352,11 @@ retry: pmap->pm_stats.resident_count--; pte = pmap_pte(pmap, va); KASSERT(pte != NULL, ("pte")); - oldpte = loadandclear((u_int *)pte); + oldpte = *pte; if (is_kernel_pmap(pmap)) *pte = PTE_G; + else + *pte = 0; KASSERT(!pte_test(&oldpte, PTE_W), ("wired pte for unwired page")); if (m->md.pv_flags & PV_TABLE_REF) @@ -1494,9 +1496,11 @@ pmap_remove_pte(struct pmap *pmap, pt_en mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_LOCK_ASSERT(pmap, MA_OWNED); - oldpte = loadandclear((u_int *)ptq); + oldpte = *ptq; if (is_kernel_pmap(pmap)) *ptq = PTE_G; + else + *ptq = 0; if (pte_test(&oldpte, PTE_W)) pmap->pm_stats.wired_count -= 1; @@ -1657,9 +1661,11 @@ pmap_remove_all(vm_page_t m) pte = pmap_pte(pv->pv_pmap, pv->pv_va); - tpte = loadandclear((u_int *)pte); + tpte = *pte; if (is_kernel_pmap(pv->pv_pmap)) *pte = PTE_G; + else + *pte = 0; if (pte_test(&tpte, PTE_W)) pv->pv_pmap->pm_stats.wired_count--;