[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>
This commit is contained in:
parent
13492c50f6
commit
abdba61a43
|
@ -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.
|
||||
|
|
|
@ -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__ */
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue