From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-Id: <20060429233920.825603000@localhost.localdomain> References: <20060429232812.825714000@localhost.localdomain> Date: Sun, 30 Apr 2006 01:28:18 +0200 From: Arnd Bergmann To: paulus@samba.org Subject: [PATCH 06/13] powerpc: fix 64k pages on non-hypervisor Cc: Arnd Bergmann , linuxppc-dev@ozlabs.org, cbe-oss-dev@ozlabs.org, linux-kernel@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Benjamin Herrenschmidt The page size encoding passed to tlbie is incorrect for new-style large pages. This fixes it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Arnd Bergmann --- Index: linus-2.6/arch/powerpc/mm/hash_native_64.c =================================================================== --- linus-2.6.orig/arch/powerpc/mm/hash_native_64.c 2006-04-29 22:47:55.000000000 +0200 +++ linus-2.6/arch/powerpc/mm/hash_native_64.c 2006-04-29 22:53:42.000000000 +0200 @@ -52,7 +52,7 @@ default: penc = mmu_psize_defs[psize].penc; va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); - va |= (0x7f >> (8 - penc)) << 12; + va |= penc << 12; asm volatile("tlbie %0,1" : : "r" (va) : "memory"); break; } @@ -74,7 +74,7 @@ default: penc = mmu_psize_defs[psize].penc; va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); - va |= (0x7f >> (8 - penc)) << 12; + va |= penc << 12; asm volatile(".long 0x7c000224 | (%0 << 11) | (1 << 21)" : : "r"(va) : "memory"); break; -- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750843AbWD2Xoc (ORCPT ); Sat, 29 Apr 2006 19:44:32 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750834AbWD2Xnk (ORCPT ); Sat, 29 Apr 2006 19:43:40 -0400 Received: from moutng.kundenserver.de ([212.227.126.186]:58109 "EHLO moutng.kundenserver.de") by vger.kernel.org with ESMTP id S1750833AbWD2XnR (ORCPT ); Sat, 29 Apr 2006 19:43:17 -0400 Message-Id: <20060429233920.825603000@localhost.localdomain> References: <20060429232812.825714000@localhost.localdomain> Date: Sun, 30 Apr 2006 01:28:18 +0200 From: Arnd Bergmann To: paulus@samba.org Cc: cbe-oss-dev@ozlabs.org, linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org, Benjamin Herrenschmidt , Arnd Bergmann Subject: [PATCH 06/13] powerpc: fix 64k pages on non-hypervisor Content-Disposition: inline; filename=fix-tlbie-64k-page.diff X-Provags-ID: kundenserver.de abuse@kundenserver.de login:bf0b512fe2ff06b96d9695102898be39 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org From: Benjamin Herrenschmidt The page size encoding passed to tlbie is incorrect for new-style large pages. This fixes it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Arnd Bergmann --- Index: linus-2.6/arch/powerpc/mm/hash_native_64.c =================================================================== --- linus-2.6.orig/arch/powerpc/mm/hash_native_64.c 2006-04-29 22:47:55.000000000 +0200 +++ linus-2.6/arch/powerpc/mm/hash_native_64.c 2006-04-29 22:53:42.000000000 +0200 @@ -52,7 +52,7 @@ default: penc = mmu_psize_defs[psize].penc; va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); - va |= (0x7f >> (8 - penc)) << 12; + va |= penc << 12; asm volatile("tlbie %0,1" : : "r" (va) : "memory"); break; } @@ -74,7 +74,7 @@ default: penc = mmu_psize_defs[psize].penc; va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); - va |= (0x7f >> (8 - penc)) << 12; + va |= penc << 12; asm volatile(".long 0x7c000224 | (%0 << 11) | (1 << 21)" : : "r"(va) : "memory"); break; --