aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-02-22 14:05:19 -0500
committerIngo Molnar <mingo@elte.hu>2009-02-22 14:05:19 -0500
commitfc6fc7f1b1095b92d4834e69b385b91e412a7ce5 (patch)
tree2ad451d5dac4d460830536944cef1de93be36b2a /arch/powerpc/kernel
parentef1f87aa7ba6224bef1b750b3272ba281d8f43ed (diff)
parent770824bdc421ff58a64db608294323571c949f4c (diff)
Merge branch 'linus' into x86/apic
Conflicts: arch/x86/mach-default/setup.c Semantic conflict resolution: arch/x86/kernel/setup.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/align.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
index 5af4e9b2dbe2..ada06924a423 100644
--- a/arch/powerpc/kernel/align.c
+++ b/arch/powerpc/kernel/align.c
@@ -646,11 +646,16 @@ static int emulate_vsx(unsigned char __user *addr, unsigned int reg,
646 unsigned int areg, struct pt_regs *regs, 646 unsigned int areg, struct pt_regs *regs,
647 unsigned int flags, unsigned int length) 647 unsigned int flags, unsigned int length)
648{ 648{
649 char *ptr = (char *) &current->thread.TS_FPR(reg); 649 char *ptr;
650 int ret = 0; 650 int ret = 0;
651 651
652 flush_vsx_to_thread(current); 652 flush_vsx_to_thread(current);
653 653
654 if (reg < 32)
655 ptr = (char *) &current->thread.TS_FPR(reg);
656 else
657 ptr = (char *) &current->thread.vr[reg - 32];
658
654 if (flags & ST) 659 if (flags & ST)
655 ret = __copy_to_user(addr, ptr, length); 660 ret = __copy_to_user(addr, ptr, length);
656 else { 661 else {