ARM: allow unwinder to unwind recursive functions
Allow the unwinder to unwind recursive functions if the stack makes progress, even if the PC is the same. This allows tracing through recursive __switchdev_handle_port_attr_set() and similar. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
bb6d3fb354
commit
8d54a27593
|
@ -444,7 +444,7 @@ int unwind_frame(struct stackframe *frame)
|
|||
ctrl.vrs[PC] = ctrl.vrs[LR];
|
||||
|
||||
/* check for infinite loop */
|
||||
if (frame->pc == ctrl.vrs[PC])
|
||||
if (frame->pc == ctrl.vrs[PC] && frame->sp == ctrl.vrs[SP])
|
||||
return -URC_FAILURE;
|
||||
|
||||
frame->fp = ctrl.vrs[FP];
|
||||
|
|
Loading…
Reference in New Issue