Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 's390-5.12-7' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Heiko Carstens:

- setup stack backchain properly in external and i/o interrupt handler
to fix stack unwinding. This broke when converting to generic entry

- save caller address of psw_idle to get a sane stacktrace

* tag 's390-5.12-7' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/entry: save the caller of psw_idle
s390/entry: avoid setting up backchain in ext|io handlers

+3 -4
+3 -4
arch/s390/kernel/entry.S
··· 401 401 brasl %r14,.Lcleanup_sie_int 402 402 #endif 403 403 0: CHECK_STACK __LC_SAVE_AREA_ASYNC 404 - lgr %r11,%r15 405 404 aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE) 406 - stg %r11,__SF_BACKCHAIN(%r15) 407 405 j 2f 408 406 1: BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP 409 407 lctlg %c1,%c1,__LC_KERNEL_ASCE 410 408 lg %r15,__LC_KERNEL_STACK 411 - xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) 412 - 2: la %r11,STACK_FRAME_OVERHEAD(%r15) 409 + 2: xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) 410 + la %r11,STACK_FRAME_OVERHEAD(%r15) 413 411 stmg %r0,%r7,__PT_R0(%r11) 414 412 # clear user controlled registers to prevent speculative use 415 413 xgr %r0,%r0 ··· 443 445 * Load idle PSW. 444 446 */ 445 447 ENTRY(psw_idle) 448 + stg %r14,(__SF_GPRS+8*8)(%r15) 446 449 stg %r3,__SF_EMPTY(%r15) 447 450 larl %r1,psw_idle_exit 448 451 stg %r1,__SF_EMPTY+8(%r15)