Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 80963
b: refs/heads/master
c: f034347
h: refs/heads/master
i:
  80961: 899757f
  80959: ad59e4f
v: v3
  • Loading branch information
travis@sgi.com authored and Ingo Molnar committed Jan 30, 2008
1 parent da5447d commit 2160e16
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 56f902051dd040e8a735a225caf0e3e4ffb0a6c5
refs/heads/master: f034347470e486835ccdcd7a5bb2ceb417be11c4
33 changes: 9 additions & 24 deletions trunk/include/asm-s390/percpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,40 +13,25 @@
*/
#if defined(__s390x__) && defined(MODULE)

#define __reloc_hide(var,offset) (*({ \
#define SHIFT_PERCPU_PTR(ptr,offset) (({ \
extern int simple_identifier_##var(void); \
unsigned long *__ptr; \
asm ( "larl %0,per_cpu__"#var"@GOTENT" \
: "=a" (__ptr) : "X" (per_cpu__##var) ); \
(typeof(&per_cpu__##var))((*__ptr) + (offset)); }))
asm ( "larl %0, %1@GOTENT" \
: "=a" (__ptr) : "X" (ptr) ); \
(typeof(ptr))((*__ptr) + (offset)); }))

#else

#define __reloc_hide(var, offset) (*({ \
#define SHIFT_PERCPU_PTR(ptr, offset) (({ \
extern int simple_identifier_##var(void); \
unsigned long __ptr; \
asm ( "" : "=a" (__ptr) : "0" (&per_cpu__##var) ); \
(typeof(&per_cpu__##var)) (__ptr + (offset)); }))
asm ( "" : "=a" (__ptr) : "0" (ptr) ); \
(typeof(ptr)) (__ptr + (offset)); }))

#endif

#ifdef CONFIG_SMP
#define __my_cpu_offset S390_lowcore.percpu_offset

extern unsigned long __per_cpu_offset[NR_CPUS];

#define __get_cpu_var(var) __reloc_hide(var,S390_lowcore.percpu_offset)
#define __raw_get_cpu_var(var) __reloc_hide(var,S390_lowcore.percpu_offset)
#define per_cpu(var,cpu) __reloc_hide(var,__per_cpu_offset[cpu])
#define per_cpu_offset(x) (__per_cpu_offset[x])

#else /* ! SMP */

#define __get_cpu_var(var) __reloc_hide(var,0)
#define __raw_get_cpu_var(var) __reloc_hide(var,0)
#define per_cpu(var,cpu) __reloc_hide(var,0)

#endif /* SMP */

#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu__##name
#include <asm-generic/percpu.h>

#endif /* __ARCH_S390_PERCPU__ */

0 comments on commit 2160e16

Please sign in to comment.