linux/arch/arc/kernel
Vineet Gupta 5b24282846 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>
2013-10-12 12:00:36 +05:30
..
.gitignore ARC: Add some .gitignore entries 2013-08-26 09:40:24 +05:30
arc_hostlink.c ARC: Hostlink Pseudo-Driver for Metaware Debugger 2013-02-15 23:16:10 +05:30
arcksyms.c
asm-offsets.c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
clk.c ARC: fix typo with clock speed 2013-05-07 13:43:54 +05:30
ctx_sw_asm.S ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
ctx_sw.c ARC: pt_regs update #3: Remove unused gutter at start of callee_regs 2013-06-22 19:23:22 +05:30
devtree.c of: consolidate definition of early_init_dt_alloc_memory_arch() 2013-08-28 21:18:32 +01:00
disasm.c ARC port updates for Linux 3.10 (part 1) 2013-05-09 14:36:27 -07:00
entry.S ARC: Entry Handler tweaks: Optimize away redundant IRQ_DISABLE_SAVE 2013-08-26 09:40:25 +05:30
fpu.c ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
head.S ARC: SMP failed to boot due to missing IVT setup 2013-09-12 07:40:08 -07:00
irq.c ARC: SMP failed to boot due to missing IVT setup 2013-09-12 07:40:08 -07:00
kgdb.c ARC: Remove explicit passing around of ECR 2013-06-26 15:30:50 +05:30
kprobes.c ARC: Remove explicit passing around of ECR 2013-06-26 15:30:50 +05:30
Makefile ARC: Hostlink Pseudo-Driver for Metaware Debugger 2013-02-15 23:16:10 +05:30
module.c ARC: Fix coding style issues 2013-04-09 12:21:14 +05:30
process.c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
ptrace.c ARC: Ignore ptrace SETREGSET request for synthetic register "stop_pc" 2013-10-12 12:00:36 +05:30
reset.c ARC: Boot #1: low-level, setup_arch(), /proc/cpuinfo, mem init 2013-02-15 23:15:54 +05:30
setup.c ARC: SMP failed to boot due to missing IVT setup 2013-09-12 07:40:08 -07:00
signal.c ARC: Fix signal frame management for SA_SIGINFO 2013-10-03 09:43:56 +05:30
smp.c arc: delete __cpuinit usage from all arc files 2013-06-27 14:37:58 +05:30
stacktrace.c ARC: pt_regs update #3: Remove unused gutter at start of callee_regs 2013-06-22 19:23:22 +05:30
sys.c ARC: ABIv3: fork/vfork wrappers not needed in "no-legacy-syscall" ABI 2013-03-11 19:01:10 +05:30
time.c ARC: Use clockevents_config_and_register over clockevents_register_device 2013-09-27 16:28:48 +05:30
traps.c ARC: Remove explicit passing around of ECR 2013-06-26 15:30:50 +05:30
troubleshoot.c ARC changes for 3.11 2013-07-03 11:09:27 -07:00
unaligned.c ARC: Handle zero-overhead-loop in unaligned access handler 2013-09-27 16:28:23 +05:30
unwind.c ARC: warn on improper stack unwind FDE entries 2013-06-27 14:37:59 +05:30
vmlinux.lds.S ARC: Adjustments for gcc 4.8 2013-06-27 14:35:32 +05:30