Commit 0ab0d7ac authored by Vasily Gorbik's avatar Vasily Gorbik Committed by Heiko Carstens

s390/unwind: correct stack switching during unwind

Adjust conditions in on_stack function. That fixes backchain unwinder
which was unable to read pt_regs at the very bottom of the stack and
hence couldn't follow stacks (e.g. from async stack to a task stack).

Fixes: 78c98f90 ("s390/unwind: introduce stack unwind API")
Reported-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
parent 962f0af8
...@@ -30,7 +30,7 @@ static inline bool on_stack(struct stack_info *info, ...@@ -30,7 +30,7 @@ static inline bool on_stack(struct stack_info *info,
return false; return false;
if (addr + len < addr) if (addr + len < addr)
return false; return false;
return addr >= info->begin && addr + len < info->end; return addr >= info->begin && addr + len <= info->end;
} }
static inline unsigned long get_stack_pointer(struct task_struct *task, static inline unsigned long get_stack_pointer(struct task_struct *task,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment