aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/signal_64.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-02-05 19:28:22 +0000
committerMark Brown <broonie@kernel.org>2016-02-05 19:28:22 +0000
commitcd6f5814252060db2d38f57c602db33696c549c0 (patch)
tree0bcf23a07f1316cb57f0127e5b1622fea59c3e8e /arch/powerpc/kernel/signal_64.c
parentd235b7b42ab59e2e616082a0735b3bcc76685c7b (diff)
parente14ca734b547e3187713441909897aefdf4e4016 (diff)
Merge tag 'v3.10.96' into linux-linaro-lsk-v3.10lsk-v3.10-16.02
This is the 3.10.96 stable release
Diffstat (limited to 'arch/powerpc/kernel/signal_64.c')
-rw-r--r--arch/powerpc/kernel/signal_64.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index 74d9615a6bb6..2419c17538e2 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -416,6 +416,10 @@ static long restore_tm_sigcontexts(struct pt_regs *regs,
/* get MSR separately, transfer the LE bit if doing signal return */
err |= __get_user(msr, &sc->gp_regs[PT_MSR]);
+ /* Don't allow reserved mode. */
+ if (MSR_TM_RESV(msr))
+ return -EINVAL;
+
/* pull in MSR TM from user context */
regs->msr = (regs->msr & ~MSR_TS_MASK) | (msr & MSR_TS_MASK);