Skip to content

Commit d9aec1d

Browse files
author
Shahab Vahedi
committed
ARC: Use REGSZ for writing to ptrace buffer
To make the code portable between 32-bit and 64-bit variants of ARC processors, hardcoded byte sizes (4) have been replaced with REGSZ which reflects the target CPU register size. Before this change, 64-bit gdbserver usage was broken due to mismatching layout in ptrace buffer. Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
1 parent 67060ce commit d9aec1d

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

arch/arc/kernel/ptrace.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ static int genregs_get(struct task_struct *target,
2525
const struct callee_regs *cregs = task_callee_regs(target);
2626
unsigned long stop_pc_val;
2727

28-
membuf_zero(&to, 4); // pad
28+
membuf_zero(&to, REGSZ); // pad
2929
membuf_store(&to, ptregs->bta);
3030
#ifndef CONFIG_ARC_LACKS_ZOL
3131
membuf_store(&to, ptregs->lp_start);
3232
membuf_store(&to, ptregs->lp_end);
3333
membuf_store(&to, ptregs->lp_count);
3434
#else
35-
membuf_zero(&to, 4); // ptregs->lp_start
36-
membuf_zero(&to, 4); // ptregs->lp_end
37-
membuf_zero(&to, 4); // ptregs->lp_count
35+
membuf_zero(&to, REGSZ); // ptregs->lp_start
36+
membuf_zero(&to, REGSZ); // ptregs->lp_end
37+
membuf_zero(&to, REGSZ); // ptregs->lp_count
3838
#endif
3939
membuf_store(&to, ptregs->status32);
4040
membuf_store(&to, ptregs->ret);
@@ -55,7 +55,7 @@ static int genregs_get(struct task_struct *target,
5555
membuf_store(&to, ptregs->r1);
5656
membuf_store(&to, ptregs->r0);
5757
membuf_store(&to, ptregs->sp);
58-
membuf_zero(&to, 4); // pad2
58+
membuf_zero(&to, REGSZ); // pad2
5959
membuf_store(&to, cregs->r25);
6060
membuf_store(&to, cregs->r24);
6161
membuf_store(&to, cregs->r23);

0 commit comments

Comments
 (0)