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

Commit 11776eaa authored by Vasily Gorbik's avatar Vasily Gorbik Committed by Heiko Carstens
Browse files

s390: correct some inline assembly constraints



Inline assembly code changed in this patch should really use "Q"
constraint "Memory reference without index register and with short
displacement". The kernel does not compile with kasan support enabled
otherwise (due to stack instrumentation).

Signed-off-by: default avatarVasily Gorbik <gor@linux.vnet.ibm.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent 0aaba41b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ static inline int lcctl(u64 ctl)
		"	.insn	s,0xb2840000,%1\n"
		"	ipm	%0\n"
		"	srl	%0,28\n"
		: "=d" (cc) : "m" (ctl) : "cc");
		: "=d" (cc) : "Q" (ctl) : "cc");
	return cc;
}

+2 −2
Original line number Diff line number Diff line
@@ -188,14 +188,14 @@ extern struct lowcore *lowcore_ptr[];

static inline void set_prefix(__u32 address)
{
	asm volatile("spx %0" : : "m" (address) : "memory");
	asm volatile("spx %0" : : "Q" (address) : "memory");
}

static inline __u32 store_prefix(void)
{
	__u32 address;

	asm volatile("stpx %0" : "=m" (address));
	asm volatile("stpx %0" : "=Q" (address));
	return address;
}

+1 −1
Original line number Diff line number Diff line
@@ -245,7 +245,7 @@ static inline unsigned short stap(void)
{
	unsigned short cpu_address;

	asm volatile("stap %0" : "=m" (cpu_address));
	asm volatile("stap %0" : "=Q" (cpu_address));
	return cpu_address;
}