summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-09-17 19:57:30 -0700
committerDavid S. Miller <davem@davemloft.net>2012-09-17 19:57:30 -0700
commit65d5fcf5c284735d3a4254cb17691842385984bb (patch)
tree5d306f655f45fd37c48761ab5aa7f0e02c8a5e22
parent979e93ca24e8336acb660529676dcda6817d8a1f (diff)
downloadlinux-65d5fcf5c284735d3a4254cb17691842385984bb.tar.bz2
sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt
The IV wasn't being propagated properly past the first loop iteration. This bug lived only because the crypto layer tests for cbc(des) do not have any cases that go more than one loop. Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--arch/sparc/crypto/des_asm.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/sparc/crypto/des_asm.S b/arch/sparc/crypto/des_asm.S
index a7da935796e1..30b6e90b28b2 100644
--- a/arch/sparc/crypto/des_asm.S
+++ b/arch/sparc/crypto/des_asm.S
@@ -168,6 +168,7 @@ ENTRY(des_sparc64_cbc_decrypt)
DES_ROUND(28, 30, 32, 32)
DES_IIP(32, 32)
fxor %f32, %f34, %f32
+ fsrc2 %f36, %f34
std %f32, [%o1 + 0x00]
add %o0, 0x08, %o0
subcc %o2, 0x08, %o2