blob: f7ad8719d02dcd211bc18c39806d86a5dceb985a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ARCH_S390_PERCPU__
2#define __ARCH_S390_PERCPU__
3
Linus Torvalds1da177e2005-04-16 15:20:36 -07004/*
5 * s390 uses its own implementation for per cpu data, the offset of
6 * the cpu local data area is cached in the cpu's lowcore memory.
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 */
travis@sgi.comf0343472008-01-30 23:27:58 +01008#define __my_cpu_offset S390_lowcore.percpu_offset
Linus Torvalds1da177e2005-04-16 15:20:36 -07009
Tejun Heo9a0ef292009-06-24 15:13:53 +090010/*
11 * For 64 bit module code, the module may be more than 4G above the
12 * per cpu area, use weak definitions to force the compiler to
13 * generate external references.
14 */
15#if defined(CONFIG_SMP) && defined(__s390x__) && defined(MODULE)
16#define ARCH_NEEDS_WEAK_PER_CPU
17#endif
18
travis@sgi.comf0343472008-01-30 23:27:58 +010019#include <asm-generic/percpu.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070020
Linus Torvalds1da177e2005-04-16 15:20:36 -070021#endif /* __ARCH_S390_PERCPU__ */