summaryrefslogtreecommitdiffstats
path: root/arch/sparc/crypto
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 /arch/sparc/crypto
parent979e93ca24e8336acb660529676dcda6817d8a1f (diff)
downloadlinux-stable-65d5fcf5c284735d3a4254cb17691842385984bb.tar.gz
linux-stable-65d5fcf5c284735d3a4254cb17691842385984bb.tar.bz2
linux-stable-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>
Diffstat (limited to 'arch/sparc/crypto')
-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