s390: fix register clobbering in CALL_ON_STACK
authorVasily Gorbik <gor@linux.ibm.com>
Mon, 25 Nov 2019 12:34:59 +0000 (13:34 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sat, 30 Nov 2019 09:52:47 +0000 (10:52 +0100)
commit4ac24c092b4eef69b2436ee4d478500dc886e8b5
treee313e5c73958572c5a3266c0597932aea9403db2
parentf44fa79b104b56d53d33ae43e69bab98b63d4783
s390: fix register clobbering in CALL_ON_STACK

CALL_ON_STACK defines and initializes register variables. Inline
assembly which follows might trigger compiler to generate memory access
for "stack" argument (e.g. in case of S390_lowcore.nodat_stack). This
memory access produces a function call under kasan with outline
instrumentation which clobbers registers.

Switch "stack" argument in CALL_ON_STACK helper to use memory reference
constraint and perform load instead.

Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/stacktrace.h