From 5dc99e50d2d66f8ddeb4e20af1908ad99db0cb98 Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Wed, 27 Feb 2013 16:04:07 +0530 Subject: [PATCH] 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 --- arch/arc/include/asm/elf.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/arch/arc/include/asm/elf.h b/arch/arc/include/asm/elf.h index 147284ff1f96..4d420055a71b 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]; /* -- GitLab