Skip to content

Commit f740a8b

Browse files
svens-s390Vasily Gorbik
authored andcommitted
s390/traps: Change stack overflow message
When the kernel stack pointer is pointing to invalid memory, a 'Kernel stack overflow' message is printed, which is misleading. Change the message to actually say that the stack pointer is invalid instead. Reviewed-by: Heiko Carstens <[email protected]> Signed-off-by: Sven Schnelle <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
1 parent a9f2455 commit f740a8b

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

arch/s390/kernel/entry.S

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ _LPP_OFFSET = __LC_LPP
6868
clg %r14,__LC_RESTART_STACK(\lowcore)
6969
je \oklabel
7070
la %r14,\savearea(\lowcore)
71-
j stack_overflow
71+
j stack_invalid
7272
.endm
7373

7474
/*
@@ -316,7 +316,7 @@ SYM_CODE_START(pgm_check_handler)
316316
tm __LC_PGM_ILC+3(%r13),0x80 # check for per exception
317317
jnz .Lpgm_svcper # -> single stepped svc
318318
2: aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
319-
# CHECK_VMAP_STACK branches to stack_overflow or 4f
319+
# CHECK_VMAP_STACK branches to stack_invalid or 4f
320320
CHECK_VMAP_STACK __LC_SAVE_AREA,%r13,4f
321321
3: lg %r15,__LC_KERNEL_STACK(%r13)
322322
4: la %r11,STACK_FRAME_OVERHEAD(%r15)
@@ -591,11 +591,11 @@ SYM_CODE_END(early_pgm_check_handler)
591591
.section .kprobes.text, "ax"
592592

593593
/*
594-
* The synchronous or the asynchronous stack overflowed. We are dead.
594+
* The synchronous or the asynchronous stack pointer is invalid. We are dead.
595595
* No need to properly save the registers, we are going to panic anyway.
596596
* Setup a pt_regs so that show_trace can provide a good call trace.
597597
*/
598-
SYM_CODE_START(stack_overflow)
598+
SYM_CODE_START(stack_invalid)
599599
GET_LC %r15
600600
lg %r15,__LC_NODAT_STACK(%r15) # change to panic stack
601601
la %r11,STACK_FRAME_OVERHEAD(%r15)
@@ -605,8 +605,8 @@ SYM_CODE_START(stack_overflow)
605605
stg %r10,__PT_ORIG_GPR2(%r11) # store last break to orig_gpr2
606606
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
607607
lgr %r2,%r11 # pass pointer to pt_regs
608-
jg kernel_stack_overflow
609-
SYM_CODE_END(stack_overflow)
608+
jg kernel_stack_invalid
609+
SYM_CODE_END(stack_invalid)
610610

611611
.section .data, "aw"
612612
.balign 4

arch/s390/kernel/entry.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void do_secure_storage_access(struct pt_regs *regs);
3131
void do_non_secure_storage_access(struct pt_regs *regs);
3232
void do_secure_storage_violation(struct pt_regs *regs);
3333
void do_report_trap(struct pt_regs *regs, int si_signo, int si_code, char *str);
34-
void kernel_stack_overflow(struct pt_regs * regs);
34+
void kernel_stack_invalid(struct pt_regs *regs);
3535
void handle_signal32(struct ksignal *ksig, sigset_t *oldset,
3636
struct pt_regs *regs);
3737

arch/s390/kernel/traps.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,20 +236,20 @@ static void monitor_event_exception(struct pt_regs *regs)
236236
}
237237
}
238238

239-
void kernel_stack_overflow(struct pt_regs *regs)
239+
void kernel_stack_invalid(struct pt_regs *regs)
240240
{
241241
/*
242242
* Normally regs are unpoisoned by the generic entry code, but
243243
* kernel_stack_overflow() is a rare case that is called bypassing it.
244244
*/
245245
kmsan_unpoison_entry_regs(regs);
246246
bust_spinlocks(1);
247-
pr_emerg("Kernel stack overflow\n");
247+
pr_emerg("Kernel stack pointer invalid\n");
248248
show_regs(regs);
249249
bust_spinlocks(0);
250-
panic("Corrupt kernel stack, cannot continue");
250+
panic("Invalid kernel stack pointer, cannot continue");
251251
}
252-
NOKPROBE_SYMBOL(kernel_stack_overflow);
252+
NOKPROBE_SYMBOL(kernel_stack_invalid);
253253

254254
static void __init test_monitor_call(void)
255255
{

0 commit comments

Comments
 (0)