Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d77bd2d6 authored by Dave Martin's avatar Dave Martin Committed by Greg Kroah-Hartman
Browse files

c6x/ptrace: Remove useless PTRACE_SETREGSET implementation



commit fb411b837b587a32046dc4f369acb93a10b1def8 upstream.

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: default avatarDave Martin <Dave.Martin@arm.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent dd605423
Loading
Loading
Loading
Loading
+0 −41
Original line number Diff line number Diff line
@@ -69,46 +69,6 @@ static int gpr_get(struct task_struct *target,
				   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,
				 &regs,
				 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,
				 &regs,
				 (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,
				 &regs,
				 (PT_CSR + 1) * sizeof(long), -1);
	return ret;
}

enum c6x_regset {
	REGSET_GPR,
};
@@ -120,7 +80,6 @@ static const struct user_regset c6x_regsets[] = {
		.size = sizeof(u32),
		.align = sizeof(u32),
		.get = gpr_get,
		.set = gpr_set
	},
};