powerpc: Hard wire PT_SOFTE value to 1 in ptrace & signals
We have always had softe in pt_regs, and accessible via PT_SOFTE, even though it is not userspace state. The value userspace sees should always be 1, because we should never be in userspace with interrupts soft disabled. In a subsequent patch we will be changing the semantics of the kernel softe value, so hard wire the value to 1 to retain the existing semantics. As far as we know nothing ever looks at it, but better safe than sorry. Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com> [mpe: Split out of larger patch, write change log] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
7a074fc083
commit
a8a4b03ab9
@@ -110,6 +110,8 @@ static long setup_sigcontext(struct sigcontext __user *sc,
|
||||
struct pt_regs *regs = tsk->thread.regs;
|
||||
unsigned long msr = regs->msr;
|
||||
long err = 0;
|
||||
/* Force usr to alway see softe as 1 (interrupts enabled) */
|
||||
unsigned long softe = 0x1;
|
||||
|
||||
BUG_ON(tsk != current);
|
||||
|
||||
@@ -169,6 +171,7 @@ static long setup_sigcontext(struct sigcontext __user *sc,
|
||||
WARN_ON(!FULL_REGS(regs));
|
||||
err |= __copy_to_user(&sc->gp_regs, regs, GP_REGS_SIZE);
|
||||
err |= __put_user(msr, &sc->gp_regs[PT_MSR]);
|
||||
err |= __put_user(softe, &sc->gp_regs[PT_SOFTE]);
|
||||
err |= __put_user(signr, &sc->signal);
|
||||
err |= __put_user(handler, &sc->handler);
|
||||
if (set != NULL)
|
||||
|
Reference in New Issue
Block a user