From owner-svn-src-head@FreeBSD.ORG Wed Sep 22 02:26:07 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 9ED611065670; Wed, 22 Sep 2010 02:26:07 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 735EA8FC16; Wed, 22 Sep 2010 02:26:07 +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 o8M2Q77V013718; Wed, 22 Sep 2010 02:26:07 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8M2Q789013713; Wed, 22 Sep 2010 02:26:07 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201009220226.o8M2Q789013713@svn.freebsd.org> From: Neel Natu Date: Wed, 22 Sep 2010 02:26:07 +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: r212989 - in head/sys/mips: include mips sibyte 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: Wed, 22 Sep 2010 02:26:07 -0000 Author: neel Date: Wed Sep 22 02:26:07 2010 New Revision: 212989 URL: http://svn.freebsd.org/changeset/base/212989 Log: Enforce that 'pmap_kenter()' is only used to establish cacheable mappings. Mappings with other cacheability attributes can be established, if needed, by using 'pmap_kenter_attr()'. Suggested by: jchandra, imp Modified: head/sys/mips/include/pmap.h head/sys/mips/mips/pmap.c head/sys/mips/sibyte/sb_zbpci.c Modified: head/sys/mips/include/pmap.h ============================================================================== --- head/sys/mips/include/pmap.h Wed Sep 22 01:39:55 2010 (r212988) +++ head/sys/mips/include/pmap.h Wed Sep 22 02:26:07 2010 (r212989) @@ -154,6 +154,7 @@ void pmap_unmapdev(vm_offset_t, vm_size_ vm_offset_t pmap_steal_memory(vm_size_t size); int page_is_managed(vm_offset_t pa); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); +void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int attr); void pmap_kremove(vm_offset_t va); void *pmap_kenter_temporary(vm_paddr_t pa, int i); void pmap_kenter_temporary_free(vm_paddr_t pa); Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Wed Sep 22 01:39:55 2010 (r212988) +++ head/sys/mips/mips/pmap.c Wed Sep 22 02:26:07 2010 (r212989) @@ -828,7 +828,7 @@ retry: /* * add a wired page to the kva */ -static void +void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int attr) { pt_entry_t *pte; @@ -849,14 +849,11 @@ pmap_kenter_attr(vm_offset_t va, vm_padd void pmap_kenter(vm_offset_t va, vm_paddr_t pa) { - int attr; - if (is_cacheable_mem(pa)) - attr = PTE_C_CACHE; - else - attr = PTE_C_UNCACHED; + KASSERT(is_cacheable_mem(pa), + ("pmap_kenter: memory at 0x%lx is not cacheable", (u_long)pa)); - pmap_kenter_attr(va, pa, attr); + pmap_kenter_attr(va, pa, PTE_C_CACHE); } /* Modified: head/sys/mips/sibyte/sb_zbpci.c ============================================================================== --- head/sys/mips/sibyte/sb_zbpci.c Wed Sep 22 01:39:55 2010 (r212988) +++ head/sys/mips/sibyte/sb_zbpci.c Wed Sep 22 02:26:07 2010 (r212989) @@ -349,7 +349,7 @@ zbpci_config_space_va(int bus, int slot, pa_page = pa & ~(PAGE_SIZE - 1); if (zbpci_config_space[cpu].paddr != pa_page) { pmap_kremove(va_page); - pmap_kenter(va_page, pa_page); + pmap_kenter_attr(va_page, pa_page, PTE_C_UNCACHED); zbpci_config_space[cpu].paddr = pa_page; } return (va_page + (pa - pa_page));