mirror of https://gitee.com/openkylin/linux.git
c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
gpr_set won't work correctly and can never have been tested, and the correct behaviour is not clear due to the endianness-dependent task layout. So, just remove it. The core code will now return -EOPNOTSUPPORT when trying to set NT_PRSTATUS on this architecture until/unless a correct implementation is supplied. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c470abd4fd
commit
fb411b837b
|
@ -69,46 +69,6 @@ static int gpr_get(struct task_struct *target,
|
||||||
0, sizeof(*regs));
|
0, sizeof(*regs));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gpr_set(struct task_struct *target,
|
|
||||||
const struct user_regset *regset,
|
|
||||||
unsigned int pos, unsigned int count,
|
|
||||||
const void *kbuf, const void __user *ubuf)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
struct pt_regs *regs = task_pt_regs(target);
|
|
||||||
|
|
||||||
/* Don't copyin TSR or CSR */
|
|
||||||
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
|
|
||||||
®s,
|
|
||||||
0, PT_TSR * sizeof(long));
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
|
|
||||||
PT_TSR * sizeof(long),
|
|
||||||
(PT_TSR + 1) * sizeof(long));
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
|
|
||||||
®s,
|
|
||||||
(PT_TSR + 1) * sizeof(long),
|
|
||||||
PT_CSR * sizeof(long));
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
|
|
||||||
PT_CSR * sizeof(long),
|
|
||||||
(PT_CSR + 1) * sizeof(long));
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
|
|
||||||
®s,
|
|
||||||
(PT_CSR + 1) * sizeof(long), -1);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum c6x_regset {
|
enum c6x_regset {
|
||||||
REGSET_GPR,
|
REGSET_GPR,
|
||||||
};
|
};
|
||||||
|
@ -120,7 +80,6 @@ static const struct user_regset c6x_regsets[] = {
|
||||||
.size = sizeof(u32),
|
.size = sizeof(u32),
|
||||||
.align = sizeof(u32),
|
.align = sizeof(u32),
|
||||||
.get = gpr_get,
|
.get = gpr_get,
|
||||||
.set = gpr_set
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue