[PATCH 1/2] s390/entry: Last breaking event vs invalid kernel stack
From: Heiko Carstens
Date: Fri Oct 02 2026 - 11:23:51 EST
In case an invalid kernel stack is detected the last breaking event
address is copied to the orig_gpr2 member of the generated pt_regs
structure. Correct location would be last_break. Fix this.
This adds help information to the printed messages:
Before:
Kernel stack pointer invalid
...
Last Breaking-Event-Address:
[<0000000000000000>] 0x0
After:
Kernel stack pointer invalid
...
Last Breaking-Event-Address:
[<000001b802c1ae1c>] proc_reg_write+0x5c/0xd0
Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx>
---
arch/s390/kernel/entry.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 10dd9bbdf985..4e99ed559dbd 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -622,7 +622,7 @@ SYM_CODE_START(stack_invalid)
stmg %r8,%r9,__PT_PSW(%r11)
mvc __PT_R8(64,%r11),0(%r14)
GET_LC %r2
- mvc __PT_ORIG_GPR2(8,%r11),__LC_PGM_LAST_BREAK(%r2)
+ mvc __PT_LAST_BREAK(8,%r11),__LC_PGM_LAST_BREAK(%r2)
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
lgr %r2,%r11 # pass pointer to pt_regs
jg kernel_stack_invalid
--
2.53.0