mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-30 07:34:12 +08:00
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>
This commit is contained in:
parent
7e0d306c37
commit
5dc99e50d2
@ -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];
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user