summaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/cmpxchg.h
diff options
context:
space:
mode:
authorHeiko Carstens2011-05-23 10:24:32 +0200
committerMartin Schwidefsky2011-05-23 10:24:29 +0200
commit4c2241fd42298007d7c3a92318806a4a9490a93c (patch)
tree13e9af56e8f0badae7c8a238901e542163c115e2 /arch/s390/include/asm/cmpxchg.h
parent[S390] vdso: disable gcov profiling (diff)
downloadkernel-qcow2-linux-4c2241fd42298007d7c3a92318806a4a9490a93c.tar.gz
kernel-qcow2-linux-4c2241fd42298007d7c3a92318806a4a9490a93c.tar.xz
kernel-qcow2-linux-4c2241fd42298007d7c3a92318806a4a9490a93c.zip
[S390] percpu: implement arch specific irqsafe_cpu_ops
Implement arch specific irqsafe_cpu ops. The arch specific ops do not disable/enable interrupts since that is an expensive operation. Instead we disable preemption and perform a compare and swap loop. Since on server distros (the ones we care about) preemption is disabled the preempt_disable()/preempt_enable() pair is a nop. In the end this code should be faster than the generic one. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/cmpxchg.h')
-rw-r--r--arch/s390/include/asm/cmpxchg.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/arch/s390/include/asm/cmpxchg.h b/arch/s390/include/asm/cmpxchg.h
index 7488e52efa97..81d7908416cf 100644
--- a/arch/s390/include/asm/cmpxchg.h
+++ b/arch/s390/include/asm/cmpxchg.h
@@ -167,7 +167,6 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old,
#ifdef CONFIG_64BIT
#define cmpxchg64(ptr, o, n) \
({ \
- BUILD_BUG_ON(sizeof(*(ptr)) != 8); \
cmpxchg((ptr), (o), (n)); \
})
#else /* CONFIG_64BIT */