]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
powerpc: Alignment handler shouldn't access VSX registers with TS_FPR
authorAnton Blanchard <anton@samba.org>
Mon, 23 Sep 2013 02:04:48 +0000 (12:04 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 11 Oct 2013 05:48:36 +0000 (16:48 +1100)
The TS_FPR macro selects the FPR component of a VSX register (the
high doubleword). emulate_vsx is using this macro to get the
address of the associated VSX register. This happens to work on big
endian, but fails on little endian.

Replace it with an explicit array access.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/align.c

index 25d8d8b4eaf987b2aece7e0b61b8f77068d7d75a..3049bd00e757dd716737070e3d923e1258ef113f 100644 (file)
@@ -650,7 +650,7 @@ static int emulate_vsx(unsigned char __user *addr, unsigned int reg,
        flush_vsx_to_thread(current);
 
        if (reg < 32)
-               ptr = (char *) &current->thread.TS_FPR(reg);
+               ptr = (char *) &current->thread.fpr[reg][0];
        else
                ptr = (char *) &current->thread.vr[reg - 32];