From owner-svn-src-projects@FreeBSD.ORG Wed Jun 6 12:13:21 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 384BD106566B; Wed, 6 Jun 2012 12:13:21 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 23D278FC08; Wed, 6 Jun 2012 12:13:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q56CDKHg013195; Wed, 6 Jun 2012 12:13:20 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q56CDK02013193; Wed, 6 Jun 2012 12:13:20 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201206061213.q56CDK02013193@svn.freebsd.org> From: Grzegorz Bernacki Date: Wed, 6 Jun 2012 12:13:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r236676 - projects/armv6/sys/arm/arm X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jun 2012 12:13:21 -0000 Author: gber Date: Wed Jun 6 12:13:20 2012 New Revision: 236676 URL: http://svn.freebsd.org/changeset/base/236676 Log: Flush cache before downgrade page to WT mode. Cache should be flushed before downgrading to avoid situation when cache controller flushes dirty cache line to page which is not WB anymore. Modified: projects/armv6/sys/arm/arm/pmap-v6.c Modified: projects/armv6/sys/arm/arm/pmap-v6.c ============================================================================== --- projects/armv6/sys/arm/arm/pmap-v6.c Wed Jun 6 11:46:37 2012 (r236675) +++ projects/armv6/sys/arm/arm/pmap-v6.c Wed Jun 6 12:13:20 2012 (r236676) @@ -809,6 +809,12 @@ pmap_l2ptp_ctor(void *mem, int size, voi ptep = &l2b->l2b_kva[l2pte_index(va)]; pte = *ptep; + cpu_idcache_wbinv_range(va, PAGE_SIZE); +#ifdef ARM_L2_PIPT + cpu_l2cache_wbinv_range(pte & L2_S_FRAME, PAGE_SIZE); +#else + cpu_l2cache_wbinv_range(va, PAGE_SIZE); +#endif if ((pte & L2_S_CACHE_MASK) != pte_l2_s_cache_mode_pt) { /* * Page tables must have the cache-mode set to