Patch "c6x/ptrace: Remove useless PTRACE_SETREGSET implementation" has been added to the 4.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
c6x-ptrace-remove-useless-ptrace_setregset-implementation.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
fb411b837b587a32046dc4f369acb93a10b1def8Mon Sep 17 00:00:00 2001
From: Dave Martin <[email protected]>
Date: Mon, 27 Mar 2017 15:10:53 +0100
Subject: c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
From: Dave Martin <[email protected]>
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.
--- arch/c6x/kernel/ptrace.c | 41 ----------------------------------------- 1 file changed, 41 deletions(-)
arch/c6x/kernel/ptrace.c +0 -41
@@ -69,46 +69,6 @@ static int gpr_get(struct task_struct *t 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 {REGSET_GPR , };
@@ -120,7 +80,6 @@ static const struct user_regset c6x_regs .size = sizeof(u32), .align = sizeof(u32), .get = gpr_get, - .set = gpr_set }, };
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/metag-ptrace-reject-partial-nt_metag_rpipe-writes.patch queue-4.10/metag-ptrace-preserve-previous-registers-for-short-regset-write.patch queue-4.10/metag-ptrace-provide-default-txstatus-for-short-nt_prstatus.patch queue-4.10/c6x-ptrace-remove-useless-ptrace_setregset-implementation.patch queue-4.10/mips-ptrace-preserve-previous-registers-for-short-regset-write.patch queue-4.10/h8300-ptrace-fix-incorrect-register-transfer-count.patch queue-4.10/sparc-ptrace-preserve-previous-registers-for-short-regset-write.patch