mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-17 13:58:46 +00:00
s390/ftrace: make use of epsw to get psw mask
Finally use epsw to create a complete psw mask within pt_regs. Without this only some bits are correct, while other bits are (incorrectly) always zero. The epsw instruction is quite heavy weight, however given that this only effects ftrace_regs_caller this seems to be the right thing, so we finally get a complete psw mask for ftrace kprobed functions. Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Acked-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
96f6641a6a
commit
1a5e3f262e
@ -33,9 +33,16 @@ ENDPROC(ftrace_stub)
|
||||
stg %r14,(__SF_GPRS+8*8)(%r15) # save traced function caller
|
||||
|
||||
.if \allregs == 1
|
||||
lghi %r14,0 # save condition code
|
||||
ipm %r14 # don't put any instructions
|
||||
sllg %r14,%r14,16 # clobbering CC before this point
|
||||
# save psw mask
|
||||
# don't put any instructions clobbering CC before this point
|
||||
#ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
|
||||
epsw %r1,%r14
|
||||
risbg %r14,%r1,0,31,32
|
||||
#else
|
||||
epsw %r14,%r1
|
||||
sllg %r14,%r14,32
|
||||
lr %r14,%r1
|
||||
#endif
|
||||
.endif
|
||||
|
||||
lgr %r1,%r15
|
||||
@ -51,7 +58,6 @@ ENDPROC(ftrace_stub)
|
||||
|
||||
.if \allregs == 1
|
||||
stg %r14,(STACK_PTREGS_PSW)(%r15)
|
||||
stosm (STACK_PTREGS_PSW)(%r15),0
|
||||
#ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
|
||||
mvghi STACK_PTREGS_FLAGS(%r15),_PIF_FTRACE_FULL_REGS
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user