From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1764478AbYA3SK4 (ORCPT ); Wed, 30 Jan 2008 13:10:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757617AbYA3SJs (ORCPT ); Wed, 30 Jan 2008 13:09:48 -0500 Received: from netops-testserver-3-out.sgi.com ([192.48.171.28]:47112 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751281AbYA3SJn (ORCPT ); Wed, 30 Jan 2008 13:09:43 -0500 Message-Id: <20080130180940.788340000@sgi.com> References: <20080130180940.022172000@sgi.com> User-Agent: quilt/0.46-1 Date: Wed, 30 Jan 2008 10:09:45 -0800 From: travis@sgi.com To: Geert Uytterhoeven , Linus Torvalds , mingo@elte.hu, Thomas Gleixner Cc: Christoph Lameter , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Paul Mackerras Subject: [PATCH 5/6] powerpc: Use generic per cpu linux-2.6.git Content-Disposition: inline; filename=power_generic_percpu Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Powerpc has a way to determine the address of the per cpu area of the currently executing processor via the paca and the array of per cpu offsets is avoided by looking up the per cpu area from the remote paca's (copying x86_64). Based on latest linux-2.6.git Cc: Paul Mackerras Cc: Geert Uytterhoeven Signed-off-by: Mike Travis --- linux-2.6.git: - added back in missing pieces from x86.git merge --- include/asm-powerpc/percpu.h | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) --- a/include/asm-powerpc/percpu.h +++ b/include/asm-powerpc/percpu.h @@ -16,25 +16,9 @@ #define __my_cpu_offset() get_paca()->data_offset #define per_cpu_offset(x) (__per_cpu_offset(x)) -/* var is in discarded region: offset to particular copy we want */ -#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu))) -#define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset())) -#define __raw_get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, local_paca->data_offset)) +#endif /* CONFIG_SMP */ +#endif /* __powerpc64__ */ -extern void setup_per_cpu_areas(void); - -#else /* ! SMP */ - -#define per_cpu(var, cpu) (*((void)(cpu), &per_cpu__##var)) -#define __get_cpu_var(var) per_cpu__##var -#define __raw_get_cpu_var(var) per_cpu__##var - -#endif /* SMP */ - -#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name - -#else #include -#endif #endif /* _ASM_POWERPC_PERCPU_H_ */ -- From mboxrd@z Thu Jan 1 00:00:00 1970 Message-Id: <20080130180940.788340000@sgi.com> References: <20080130180940.022172000@sgi.com> Date: Wed, 30 Jan 2008 10:09:45 -0800 From: travis@sgi.com Subject: [PATCH 5/6] powerpc: Use generic per cpu linux-2.6.git Content-Disposition: inline; filename=power_generic_percpu Sender: owner-linux-mm@kvack.org Return-Path: To: Geert Uytterhoeven , Linus Torvalds , mingo@elte.hu, Thomas Gleixner Cc: Christoph Lameter , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Paul Mackerras List-ID: Powerpc has a way to determine the address of the per cpu area of the currently executing processor via the paca and the array of per cpu offsets is avoided by looking up the per cpu area from the remote paca's (copying x86_64). Based on latest linux-2.6.git Cc: Paul Mackerras Cc: Geert Uytterhoeven Signed-off-by: Mike Travis --- linux-2.6.git: - added back in missing pieces from x86.git merge --- include/asm-powerpc/percpu.h | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) --- a/include/asm-powerpc/percpu.h +++ b/include/asm-powerpc/percpu.h @@ -16,25 +16,9 @@ #define __my_cpu_offset() get_paca()->data_offset #define per_cpu_offset(x) (__per_cpu_offset(x)) -/* var is in discarded region: offset to particular copy we want */ -#define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu))) -#define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __my_cpu_offset())) -#define __raw_get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, local_paca->data_offset)) +#endif /* CONFIG_SMP */ +#endif /* __powerpc64__ */ -extern void setup_per_cpu_areas(void); - -#else /* ! SMP */ - -#define per_cpu(var, cpu) (*((void)(cpu), &per_cpu__##var)) -#define __get_cpu_var(var) per_cpu__##var -#define __raw_get_cpu_var(var) per_cpu__##var - -#endif /* SMP */ - -#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name - -#else #include -#endif #endif /* _ASM_POWERPC_PERCPU_H_ */ -- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org