Commit abdba61a authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky

[S390] cpu_relax() is supposed to have barrier() semantics.

Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 13492c50
...@@ -199,15 +199,13 @@ unsigned long get_wchan(struct task_struct *p); ...@@ -199,15 +199,13 @@ unsigned long get_wchan(struct task_struct *p);
/* /*
* Give up the time slice of the virtual PU. * Give up the time slice of the virtual PU.
*/ */
#ifndef __s390x__ static inline void cpu_relax(void)
# define cpu_relax() asm volatile ("diag 0,0,68" : : : "memory") {
#else /* __s390x__ */ if (MACHINE_HAS_DIAG44)
# define cpu_relax() \ asm volatile ("diag 0,0,68" : : : "memory");
do { \ else
if (MACHINE_HAS_DIAG44) \ barrier();
asm volatile ("diag 0,0,68" : : : "memory"); \ }
} while (0)
#endif /* __s390x__ */
/* /*
* Set PSW to specified value. * Set PSW to specified value.
......
...@@ -40,15 +40,16 @@ extern unsigned long machine_flags; ...@@ -40,15 +40,16 @@ extern unsigned long machine_flags;
#define MACHINE_IS_VM (machine_flags & 1) #define MACHINE_IS_VM (machine_flags & 1)
#define MACHINE_IS_P390 (machine_flags & 4) #define MACHINE_IS_P390 (machine_flags & 4)
#define MACHINE_HAS_MVPG (machine_flags & 16) #define MACHINE_HAS_MVPG (machine_flags & 16)
#define MACHINE_HAS_DIAG44 (machine_flags & 32)
#define MACHINE_HAS_IDTE (machine_flags & 128) #define MACHINE_HAS_IDTE (machine_flags & 128)
#ifndef __s390x__ #ifndef __s390x__
#define MACHINE_HAS_IEEE (machine_flags & 2) #define MACHINE_HAS_IEEE (machine_flags & 2)
#define MACHINE_HAS_CSP (machine_flags & 8) #define MACHINE_HAS_CSP (machine_flags & 8)
#define MACHINE_HAS_DIAG44 (1)
#else /* __s390x__ */ #else /* __s390x__ */
#define MACHINE_HAS_IEEE (1) #define MACHINE_HAS_IEEE (1)
#define MACHINE_HAS_CSP (1) #define MACHINE_HAS_CSP (1)
#define MACHINE_HAS_DIAG44 (machine_flags & 32)
#endif /* __s390x__ */ #endif /* __s390x__ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment