|
@@ -40,6 +40,13 @@ static int genregs_get(struct task_struct *target,
|
|
|
offsetof(struct user_regs_struct, LOC), \
|
|
|
offsetof(struct user_regs_struct, LOC) + 4);
|
|
|
|
|
|
+#define REG_O_ZERO(LOC) \
|
|
|
+ if (!ret) \
|
|
|
+ ret = user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf, \
|
|
|
+ offsetof(struct user_regs_struct, LOC), \
|
|
|
+ offsetof(struct user_regs_struct, LOC) + 4);
|
|
|
+
|
|
|
+ REG_O_ZERO(pad);
|
|
|
REG_O_CHUNK(scratch, callee, ptregs);
|
|
|
REG_O_CHUNK(callee, efa, cregs);
|
|
|
REG_O_CHUNK(efa, stop_pc, &target->thread.fault_address);
|
|
@@ -88,6 +95,7 @@ static int genregs_set(struct task_struct *target,
|
|
|
offsetof(struct user_regs_struct, LOC), \
|
|
|
offsetof(struct user_regs_struct, LOC) + 4);
|
|
|
|
|
|
+ REG_IGNORE_ONE(pad);
|
|
|
/* TBD: disallow updates to STATUS32, orig_r8 etc*/
|
|
|
REG_IN_CHUNK(scratch, callee, ptregs); /* pt_regs[bta..orig_r8] */
|
|
|
REG_IN_CHUNK(callee, efa, cregs); /* callee_regs[r25..r13] */
|