crypto: x86/sha1 - fix stack alignment of AVX2 variant
authorMathias Krause <minipli@googlemail.com>
Mon, 24 Mar 2014 16:10:38 +0000 (17:10 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 25 Mar 2014 12:25:43 +0000 (20:25 +0800)
commit6c8c17cc7a8806dde074d7c0bf4d519dd4d028c5
treed391a0579378dbdd4de40f441bb94d0e579811ff
parent6ca5afb8c26991cf4f13a8bcca870ec2a9522bf7
crypto: x86/sha1 - fix stack alignment of AVX2 variant

The AVX2 implementation might waste up to a page of stack memory because
of a wrong alignment calculation. This will, in the worst case, increase
the stack usage of sha1_transform_avx2() alone to 5.4 kB -- way to big
for a kernel function. Even worse, it might also allocate *less* bytes
than needed if the stack pointer is already aligned bacause in that case
the 'sub %rbx, %rsp' is effectively moving the stack pointer upwards,
not downwards.

Fix those issues by changing and simplifying the alignment calculation
to use a 32 byte alignment, the alignment really needed.

Cc: Chandramouli Narayanan <mouli@linux.intel.com>
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Reviewed-by: H. Peter Anvin <hpa@linux.intel.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/x86/crypto/sha1_avx2_x86_64_asm.S
This page took 0.025514 seconds and 5 git commands to generate.