aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/signal_32.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index 749778e0a69d..1844298f5ea4 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -457,7 +457,15 @@ static int save_user_regs(struct pt_regs *regs, struct mcontext __user *frame,
457 if (copy_vsx_to_user(&frame->mc_vsregs, current)) 457 if (copy_vsx_to_user(&frame->mc_vsregs, current))
458 return 1; 458 return 1;
459 msr |= MSR_VSX; 459 msr |= MSR_VSX;
460 } 460 } else if (!ctx_has_vsx_region)
461 /*
462 * With a small context structure we can't hold the VSX
463 * registers, hence clear the MSR value to indicate the state
464 * was not saved.
465 */
466 msr &= ~MSR_VSX;
467
468
461#endif /* CONFIG_VSX */ 469#endif /* CONFIG_VSX */
462#ifdef CONFIG_SPE 470#ifdef CONFIG_SPE
463 /* save spe registers */ 471 /* save spe registers */