sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt
authorDavid S. Miller <davem@davemloft.net>
Tue, 18 Sep 2012 02:57:30 +0000 (19:57 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Sep 2012 02:57:30 +0000 (19:57 -0700)
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>
arch/sparc/crypto/des_asm.S

index a7da935796e12a5bd05e7aa7ccc881cbb275f082..30b6e90b28b2d793e1b18e5d342dabcfb515847b 100644 (file)
@@ -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