MIPS: Octeon: Make octeon-md5 driver endian-agnostic
authorPaul Martin <paul.martin@codethink.co.uk>
Mon, 30 Mar 2015 16:01:00 +0000 (17:01 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 1 Apr 2015 15:22:15 +0000 (17:22 +0200)
The octeon crypto co-processor expects values to be big endian.
Wrap the data transfers with cpu_to_be64() and be64_to_cpu()
transformations.

This passes for all the MD5 test vectors in crypto/testmgr.h

Signed-off-by: Paul Martin <paul.martin@codethink.co.uk>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9631/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/cavium-octeon/crypto/octeon-crypto.h

index 3550725351101e5bf32f75ddb30cd146a56ffb46..df6912ec1f5774ae91ef09fef7f2fa78ea063324 100644 (file)
@@ -33,7 +33,7 @@ do {                                                  \
        __asm__ __volatile__ (                          \
        "dmtc2 %[rt],0x0048+" STR(index)                \
        :                                               \
-       : [rt] "d" (value));                            \
+       : [rt] "d" (cpu_to_be64(value)));               \
 } while (0)
 
 /*
@@ -48,7 +48,7 @@ do {                                                  \
        : [rt] "=d" (__value)                           \
        : );                                            \
                                                        \
-       __value;                                        \
+       be64_to_cpu(__value);                           \
 })
 
 /*
@@ -59,7 +59,7 @@ do {                                                  \
        __asm__ __volatile__ (                          \
        "dmtc2 %[rt],0x0040+" STR(index)                \
        :                                               \
-       : [rt] "d" (value));                            \
+       : [rt] "d" (cpu_to_be64(value)));               \
 } while (0)
 
 /*
@@ -70,7 +70,7 @@ do {                                                  \
        __asm__ __volatile__ (                          \
        "dmtc2 %[rt],0x4047"                            \
        :                                               \
-       : [rt] "d" (value));                            \
+       : [rt] "d" (cpu_to_be64(value)));               \
 } while (0)
 
 /*