powerpc: Improve comment explaining why we modify VRSAVE
authorAnton Blanchard <anton@samba.org>
Thu, 19 May 2016 18:41:34 +0000 (04:41 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 26 Jul 2016 04:16:19 +0000 (14:16 +1000)
The comment explaining why we modify VRSAVE is misleading, glibc
does rely on the behaviour. Update the comment.

Signed-off-by: Anton Blanchard <anton@samba.org>
Reviewed-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/vector.S

index 1c2e7a3..616a6d8 100644 (file)
@@ -70,10 +70,11 @@ _GLOBAL(load_up_altivec)
        MTMSRD(r5)                      /* enable use of AltiVec now */
        isync
 
-       /* Hack: if we get an altivec unavailable trap with VRSAVE
-        * set to all zeros, we assume this is a broken application
-        * that fails to set it properly, and thus we switch it to
-        * all 1's
+       /*
+        * While userspace in general ignores VRSAVE, glibc uses it as a boolean
+        * to optimise userspace context save/restore. Whenever we take an
+        * altivec unavailable exception we must set VRSAVE to something non
+        * zero. Set it to all 1s. See also the programming note in the ISA.
         */
        mfspr   r4,SPRN_VRSAVE
        cmpwi   0,r4,0