[S390] fix single stepped svcs with TRACE_IRQFLAGS=y

If irq flags tracing is enabled the TRACE_IRQS_ON macros expands to
a function call which clobbers registers %r0-%r5. The macro is used
in the code path for single stepped system calls. The argument
registers %r2-%r6 need to be restored from the stack before the system
call function is called.

Cc: stable@kernel.org
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by Martin Schwidefsky and committed by Martin Schwidefsky 21ec7f6d 19b123eb

+2
+1
arch/s390/kernel/entry.S
··· 571 571 mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID 572 572 oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP 573 573 TRACE_IRQS_ON 574 + lm %r2,%r6,SP_R2(%r15) # load svc arguments 574 575 stosm __SF_EMPTY(%r15),0x03 # reenable interrupts 575 576 b BASED(sysc_do_svc) 576 577
+1
arch/s390/kernel/entry64.S
··· 549 549 mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID 550 550 oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP 551 551 TRACE_IRQS_ON 552 + lmg %r2,%r6,SP_R2(%r15) # load svc arguments 552 553 stosm __SF_EMPTY(%r15),0x03 # reenable interrupts 553 554 j sysc_do_svc 554 555