mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
[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.
|
* 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;
|
|||||||
#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__ */
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user