sparc64: Store per-cpu offset in trap_block[]

Surprisingly this actually makes LOAD_PER_CPU_BASE() a little
more efficient.

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller
2009-04-01 01:47:10 -07:00
parent 19f0fa3fb3
commit 5a5488d3bb
5 changed files with 21 additions and 44 deletions

View File

@@ -7,12 +7,12 @@ register unsigned long __local_per_cpu_offset asm("g5");
#ifdef CONFIG_SMP
#include <asm/trap_block.h>
extern void real_setup_per_cpu_areas(void);
extern unsigned long __per_cpu_base;
extern unsigned long __per_cpu_shift;
#define __per_cpu_offset(__cpu) \
(__per_cpu_base + ((unsigned long)(__cpu) << __per_cpu_shift))
(trap_block[(__cpu)].__per_cpu_base)
#define per_cpu_offset(x) (__per_cpu_offset(x))
#define __my_cpu_offset __local_per_cpu_offset