From patchwork Fri Jan 23 16:51:28 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gerhard Pircher X-Patchwork-Id: 20095 X-Patchwork-Delegate: benh@kernel.crashing.org Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from ozlabs.org (localhost [127.0.0.1]) by ozlabs.org (Postfix) with ESMTP id 0C831DE070 for ; Sat, 24 Jan 2009 03:56:13 +1100 (EST) X-Original-To: linuxppc-dev@ozlabs.org Delivered-To: linuxppc-dev@ozlabs.org Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by ozlabs.org (Postfix) with SMTP id 0EB7BDDFE0 for ; Sat, 24 Jan 2009 03:51:30 +1100 (EST) Received: (qmail 31368 invoked by uid 0); 23 Jan 2009 16:51:28 -0000 Received: from 85.127.161.96 by www068.gmx.net with HTTP; Fri, 23 Jan 2009 17:51:28 +0100 (CET) Date: Fri, 23 Jan 2009 17:51:28 +0100 From: "Gerhard Pircher" In-Reply-To: <20090118202943.85450@gmx.net> Message-ID: <20090123165128.74270@gmx.net> MIME-Version: 1.0 References: <20081219051455.EBC28DE04A@ozlabs.org> <20090118194353.85500@gmx.net> <1232308506.23611.43.camel@pasglop> <20090118202943.85450@gmx.net> Subject: [PATCH] powerpc/mm: Fix handling of _PAGE_COHERENT in BAT setup code To: benh@kernel.crashing.org, linuxppc-dev@ozlabs.org X-Authenticated: #6097454 X-Flags: 0001 X-Mailer: WWW-Mail 6100 (Global Message Exchange) X-Priority: 3 X-Provags-ID: V01U2FsdGVkX1/k6fZxr4bkEcihFmyaxq1Nu6pGsZGlLHc9HABYRk 4019rnaD0yUBfgqQb754f7Nv/X0ISZg4s7AQ== X-GMX-UID: 8ZwMejcoODB6dERrLmRMMts9Ji9SWhK1 X-FuHaFi: 0.54 Cc: kumar.gala@freescale.com, paulus@samba.org X-BeenThere: linuxppc-dev@ozlabs.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org _PAGE_COHERENT is now always set in _PAGE_RAM resp. PAGE_KERNEL. Thus it has to be masked out, if the BAT mapping should be non cacheable or CPU_FTR_NEED_COHERENT is not set. Signed-off-by: Gerhard Pircher --- arch/powerpc/mm/ppc_mmu_32.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c index 45d9253..fe65c40 100644 --- a/arch/powerpc/mm/ppc_mmu_32.c +++ b/arch/powerpc/mm/ppc_mmu_32.c @@ -123,9 +123,9 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys, int wimgxpp; struct ppc_bat *bat = BATS[index]; - if (((flags & _PAGE_NO_CACHE) == 0) && - cpu_has_feature(CPU_FTR_NEED_COHERENT)) - flags |= _PAGE_COHERENT; + if ((flags & _PAGE_NO_CACHE) || + (cpu_has_feature(CPU_FTR_NEED_COHERENT) == 0)) + flags &= ~_PAGE_COHERENT; bl = (size >> 17) - 1; if (PVR_VER(mfspr(SPRN_PVR)) != 1) {