diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-10-10 14:03:57 (GMT) |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-10-12 06:30:36 (GMT) |
commit | 5b24282846c064ee90d40fcb3a8f63b8e754fd28 (patch) | |
tree | ded207607369ee97833be4b2f8035df197d9dd31 /drivers/acpi/internal.h | |
parent | d0e639c9e06d44e713170031fe05fb60ebe680af (diff) | |
download | linux-fsl-qoriq-5b24282846c064ee90d40fcb3a8f63b8e754fd28.tar.xz |
ARC: Ignore ptrace SETREGSET request for synthetic register "stop_pc"
ARCompact TRAP_S insn used for breakpoints, commits before exception is
taken (updating architectural PC). So ptregs->ret contains next-PC and
not the breakpoint PC itself. This is different from other restartable
exceptions such as TLB Miss where ptregs->ret has exact faulting PC.
gdb needs to know exact-PC hence ARC ptrace GETREGSET provides for
@stop_pc which returns ptregs->ret vs. EFA depending on the
situation.
However, writing stop_pc (SETREGSET request), which updates ptregs->ret
doesn't makes sense stop_pc doesn't always correspond to that reg as
described above.
This was not an issue so far since user_regs->ret / user_regs->stop_pc
had same value and both writing to ptregs->ret was OK, needless, but NOT
broken, hence not observed.
With gdb "jump", they diverge, and user_regs->ret updating ptregs is
overwritten immediately with stop_pc, which this patch fixes.
Reported-by: Anton Kolesov <akolesov@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'drivers/acpi/internal.h')
0 files changed, 0 insertions, 0 deletions