diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-07-07 16:37:12 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-07-07 16:37:54 +0200 |
commit | 25ca1251dc55673da1f3c6ddc1bf93fbb7fc83fc (patch) | |
tree | f71b42e4721069fea61c1b1f5f133dc6baecf254 /arch | |
parent | 2c48c4d631970b70d60a4f926b0f68f194a0d559 (diff) | |
download | op-kernel-dev-25ca1251dc55673da1f3c6ddc1bf93fbb7fc83fc.zip op-kernel-dev-25ca1251dc55673da1f3c6ddc1bf93fbb7fc83fc.tar.gz |
[S390] add generic atomic64 support for 31 bit
Performance counters need 64 bit atomic operations.
To keep the patch small we use the simple generic atomic64_t implementation.
The native implementation follows with the next kernel.
Fixes this build bug:
In file included from kernel/sched.c:42:
include/linux/perf_counter.h:427: error: expected specifier-qualifier-list before 'atomic64_t'
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/Kconfig | 1 | ||||
-rw-r--r-- | arch/s390/include/asm/atomic.h | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 4cd12b5..f46a1b5 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -95,6 +95,7 @@ config S390 select HAVE_ARCH_TRACEHOOK select INIT_ALL_POSSIBLE select HAVE_PERF_COUNTERS + select GENERIC_ATOMIC64 if !64BIT config SCHED_OMIT_FRAME_POINTER bool diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h index fca9dff..c7d0abf 100644 --- a/arch/s390/include/asm/atomic.h +++ b/arch/s390/include/asm/atomic.h @@ -268,7 +268,12 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) #undef __CSG_LOOP -#endif + +#else /* __s390x__ */ + +#include <asm-generic/atomic64.h> + +#endif /* __s390x__ */ #define smp_mb__before_atomic_dec() smp_mb() #define smp_mb__after_atomic_dec() smp_mb() |