summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-09-18 04:57:30 +0200
committerDavid S. Miller <davem@davemloft.net>2012-09-18 04:57:30 +0200
commit65d5fcf5c284735d3a4254cb17691842385984bb (patch)
tree5d306f655f45fd37c48761ab5aa7f0e02c8a5e22
parentsparc64: Add auto-loading mechanism to crypto-opcode drivers. (diff)
downloadlinux-65d5fcf5c284735d3a4254cb17691842385984bb.tar.xz
linux-65d5fcf5c284735d3a4254cb17691842385984bb.zip
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