From owner-svn-src-all@FreeBSD.ORG Mon Oct 4 16:07:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D2058106566C; Mon, 4 Oct 2010 16:07:48 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C153B8FC19; Mon, 4 Oct 2010 16:07:48 +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 o94G7mFt019384; Mon, 4 Oct 2010 16:07:48 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o94G7mcQ019381; Mon, 4 Oct 2010 16:07:48 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201010041607.o94G7mcQ019381@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 4 Oct 2010 16:07:48 +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: r213407 - head/sys/powerpc/aim X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Oct 2010 16:07:48 -0000 Author: nwhitehorn Date: Mon Oct 4 16:07:48 2010 New Revision: 213407 URL: http://svn.freebsd.org/changeset/base/213407 Log: Follow exactly the steps in architecture manual for correctly invalidating TLB entries instead of trying to cut corners. Modified: head/sys/powerpc/aim/mmu_oea.c head/sys/powerpc/aim/mmu_oea64.c Modified: head/sys/powerpc/aim/mmu_oea.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea.c Mon Oct 4 16:02:11 2010 (r213406) +++ head/sys/powerpc/aim/mmu_oea.c Mon Oct 4 16:07:48 2010 (r213407) @@ -425,9 +425,9 @@ tlbie(vm_offset_t va) { mtx_lock_spin(&tlbie_mtx); + __asm __volatile("ptesync"); __asm __volatile("tlbie %0" :: "r"(va)); - __asm __volatile("tlbsync"); - powerpc_sync(); + __asm __volatile("eieio; tlbsync; ptesync"); mtx_unlock_spin(&tlbie_mtx); } Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Mon Oct 4 16:02:11 2010 (r213406) +++ head/sys/powerpc/aim/mmu_oea64.c Mon Oct 4 16:07:48 2010 (r213407) @@ -211,14 +211,14 @@ TLBIE(uint64_t vpn) { mfmsr %0; \ mr %1, %0; \ insrdi %1,%5,1,0; \ - mtmsrd %1; \ + mtmsrd %1; isync; \ ptesync; \ \ sld %1,%2,%4; \ or %1,%1,%3; \ tlbie %1; \ \ - mtmsrd %0; \ + mtmsrd %0; isync; \ eieio; \ tlbsync; \ ptesync;"