Commit def32fad authored by Vineet Gupta's avatar Vineet Gupta

ARC: stack unwinder to bail if PC is not kernel mode

Currently, it doesn't invoke the callback but continues to unwind

Also while at it - simplify the code a bit
Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
parent 082ae1e1
...@@ -122,19 +122,17 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs, ...@@ -122,19 +122,17 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs,
while (1) { while (1) {
address = UNW_PC(&frame_info); address = UNW_PC(&frame_info);
if (address && __kernel_text_address(address)) { if (!address || !__kernel_text_address(address))
if (consumer_fn(address, arg) == -1) break;
break;
}
ret = arc_unwind(&frame_info); if (consumer_fn(address, arg) == -1)
break;
if (ret == 0) { ret = arc_unwind(&frame_info);
frame_info.regs.r63 = frame_info.regs.r31; if (ret)
continue;
} else {
break; break;
}
frame_info.regs.r63 = frame_info.regs.r31;
} }
return address; /* return the last address it saw */ return address; /* return the last address it saw */
......
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