Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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

parent 13492c50
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -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.
+2 −1
Original line number Diff line number Diff line
@@ -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__ */