diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-02-27 16:04:07 +0530 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-02-27 19:59:55 +0530 |
commit | 5dc99e50d2d66f8ddeb4e20af1908ad99db0cb98 (patch) | |
tree | 51fcb29ca657e40422a720ab222056778fe0b858 /arch/arc | |
parent | 7e0d306c372bf70ff19eb476bc7f7635abe816ea (diff) |
ARC: gdbserver using regset interface possibly broken
ptrace regset interface relies on ELF_NGREG for ceiling the size of user
request. So any larger request (even if legit) would be clipped.
The existing def of ELF_NGREG didn't use user_regs_struct and was
technically one placeholder short (stop_pc) - although the current code
would still work because pt_regs includes a bunch of extra fields,
making
ELF_NGREG >= sizeof(struct user_regs_struct)/sizeof(long)
But we need to remove this ambiguity, specially since pt_regs should NOT
be directly associated with with anything userspace-ish.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r-- | arch/arc/include/asm/elf.h | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/arc/include/asm/elf.h b/arch/arc/include/asm/elf.h index 147284ff1f9..4d420055a71 100644 --- a/arch/arc/include/asm/elf.h +++ b/arch/arc/include/asm/elf.h @@ -27,11 +27,7 @@ typedef unsigned long elf_greg_t; typedef unsigned long elf_fpregset_t; - -/* core dump regs is in the order pt_regs, callee_regs, stop_pc (for gdb) */ -#define ELF_NGREG ((sizeof(struct pt_regs) + sizeof(struct callee_regs) \ - + sizeof(unsigned long)) / sizeof(elf_greg_t)) - +#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) typedef elf_greg_t elf_gregset_t[ELF_NGREG]; /* |