Thanks for catching this. Should propagate this patch to stable kernels 3.14, 3.12 and 3.10 too. Acked-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> On Mon, 2014-06-23 at 19:41 +0300, Jussi Kivilinna wrote: > Byte-to-bit-count computation is only partly converted to big-endian and is > mixing in CPU-endian values. Problem was noticed by sparce with warning: > > CHECK arch/x86/crypto/sha512_ssse3_glue.c > arch/x86/crypto/sha512_ssse3_glue.c:144:19: warning: restricted __be64 degrades to integer > arch/x86/crypto/sha512_ssse3_glue.c:144:17: warning: incorrect type in assignment (different base types) > arch/x86/crypto/sha512_ssse3_glue.c:144:17: expected restricted __be64 <noident> > arch/x86/crypto/sha512_ssse3_glue.c:144:17: got unsigned long long > > Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> > Signed-off-by: Jussi Kivilinna <jussi.kivilinna@xxxxxx> > --- > arch/x86/crypto/sha512_ssse3_glue.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/crypto/sha512_ssse3_glue.c b/arch/x86/crypto/sha512_ssse3_glue.c > index f30cd10..8626b03 100644 > --- a/arch/x86/crypto/sha512_ssse3_glue.c > +++ b/arch/x86/crypto/sha512_ssse3_glue.c > @@ -141,7 +141,7 @@ static int sha512_ssse3_final(struct shash_desc *desc, u8 *out) > > /* save number of bits */ > bits[1] = cpu_to_be64(sctx->count[0] << 3); > - bits[0] = cpu_to_be64(sctx->count[1] << 3) | sctx->count[0] >> 61; > + bits[0] = cpu_to_be64(sctx->count[1] << 3 | sctx->count[0] >> 61); > > /* Pad out to 112 mod 128 and append length */ > index = sctx->count[0] & 0x7f; > -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html