Message ID | 1429857429-13323-1-git-send-email-ard.biesheuvel@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Herbert Xu |
Headers | show |
On Fri, Apr 24, 2015 at 08:37:09AM +0200, Ard Biesheuvel wrote: > Patch e68410ebf626 ("crypto: x86/sha512_ssse3 - move SHA-384/512 > SSSE3 implementation to base layer") changed the prototypes of the > core asm SHA-512 implementations so that they are compatible with > the prototype used by the base layer. > > However, in one instance, the register that was used for passing the > input buffer was reused as a scratch register later on in the code, > and since the input buffer param changed places with the digest param > -which needs to be written back before the function returns- this > resulted in the scratch register to be dereferenced in a memory write > operation, causing a GPF. > > Fix this by changing the scratch register to use the same register as > the input buffer param again. > > Fixes: e68410ebf626 ("crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer") > Reported-By: Bobby Powers <bobbypowers@gmail.com> > Tested-By: Bobby Powers <bobbypowers@gmail.com> > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Patch applied. Thanks!
diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S index a4771dcd1fcf..1f20b35d8573 100644 --- a/arch/x86/crypto/sha512-avx2-asm.S +++ b/arch/x86/crypto/sha512-avx2-asm.S @@ -79,7 +79,7 @@ NUM_BLKS = %rdx c = %rcx d = %r8 e = %rdx -y3 = %rdi +y3 = %rsi TBL = %rbp