s390/unwind: report an error if pt_regs are not on stack
authorVasily Gorbik <gor@linux.ibm.com>
Fri, 22 Nov 2019 14:53:30 +0000 (15:53 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sat, 30 Nov 2019 09:52:45 +0000 (10:52 +0100)
If unwinder is looking at pt_regs which is not on stack then something
went wrong and an error has to be reported rather than successful
unwinding termination.

Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/unwind_bc.c

index fa111d3..fd90b6e 100644 (file)
@@ -76,7 +76,7 @@ bool unwind_next_frame(struct unwind_state *state)
                        /* No back-chain, look for a pt_regs structure */
                        sp = state->sp + STACK_FRAME_OVERHEAD;
                        if (!on_stack(info, sp, sizeof(struct pt_regs)))
-                               goto out_stop;
+                               goto out_err;
                        regs = (struct pt_regs *) sp;
                        if (READ_ONCE_NOCHECK(regs->psw.mask) & PSW_MASK_PSTATE)
                                goto out_stop;