diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2006-07-12 16:39:58 +0200 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-07-12 16:39:58 +0200 |
commit | abdba61a4361e5d47c1633c9e7f56d32dbf4aae8 (patch) | |
tree | 3299ba0bd644282832c26473f7ee3a8524104d43 /include/asm-s390 | |
parent | [S390] fix futex_atomic_cmpxchg_inatomic (diff) | |
download | linux-abdba61a4361e5d47c1633c9e7f56d32dbf4aae8.tar.xz linux-abdba61a4361e5d47c1633c9e7f56d32dbf4aae8.zip |
[S390] cpu_relax() is supposed to have barrier() semantics.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'include/asm-s390')
-rw-r--r-- | include/asm-s390/processor.h | 16 | ||||
-rw-r--r-- | include/asm-s390/setup.h | 3 |
2 files changed, 9 insertions, 10 deletions
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h index c5cbc4bd8414..5b71d3731723 100644 --- a/include/asm-s390/processor.h +++ b/include/asm-s390/processor.h @@ -199,15 +199,13 @@ unsigned long get_wchan(struct task_struct *p); /* * Give up the time slice of the virtual PU. */ -#ifndef __s390x__ -# define cpu_relax() asm volatile ("diag 0,0,68" : : : "memory") -#else /* __s390x__ */ -# define cpu_relax() \ - do { \ - if (MACHINE_HAS_DIAG44) \ - asm volatile ("diag 0,0,68" : : : "memory"); \ - } while (0) -#endif /* __s390x__ */ +static inline void cpu_relax(void) +{ + if (MACHINE_HAS_DIAG44) + asm volatile ("diag 0,0,68" : : : "memory"); + else + barrier(); +} /* * Set PSW to specified value. diff --git a/include/asm-s390/setup.h b/include/asm-s390/setup.h index da3fd4a7bb32..19e31979309a 100644 --- a/include/asm-s390/setup.h +++ b/include/asm-s390/setup.h @@ -40,15 +40,16 @@ extern unsigned long machine_flags; #define MACHINE_IS_VM (machine_flags & 1) #define MACHINE_IS_P390 (machine_flags & 4) #define MACHINE_HAS_MVPG (machine_flags & 16) -#define MACHINE_HAS_DIAG44 (machine_flags & 32) #define MACHINE_HAS_IDTE (machine_flags & 128) #ifndef __s390x__ #define MACHINE_HAS_IEEE (machine_flags & 2) #define MACHINE_HAS_CSP (machine_flags & 8) +#define MACHINE_HAS_DIAG44 (1) #else /* __s390x__ */ #define MACHINE_HAS_IEEE (1) #define MACHINE_HAS_CSP (1) +#define MACHINE_HAS_DIAG44 (machine_flags & 32) #endif /* __s390x__ */ |