diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/kernel/signal_32.c | 10 |
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 */ |