]> git.karo-electronics.de Git - karo-tx-linux.git/commit
crypto: sha512 - Avoid stack bloat on i386
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 5 Feb 2012 04:09:28 +0000 (15:09 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Mar 2012 17:49:20 +0000 (09:49 -0800)
commite200edb226a0357d554039c4ff1847c6c03724c7
tree84e33f6cc386fdeec3b20b143c92e54af8ca0b3b
parent3e15b23883776bb8c42bd5e5ee6e439ab4bd60df
crypto: sha512 - Avoid stack bloat on i386

commit 3a92d687c8015860a19213e3c102cad6b722f83c upstream.

Unfortunately in reducing W from 80 to 16 we ended up unrolling
the loop twice.  As gcc has issues dealing with 64-bit ops on
i386 this means that we end up using even more stack space (>1K).

This patch solves the W reduction by moving LOAD_OP/BLEND_OP
into the loop itself, thus avoiding the need to duplicate it.

While the stack space still isn't great (>0.5K) it is at least
in the same ball park as the amount of stack used for our C sha1
implementation.

Note that this patch basically reverts to the original code so
the diff looks bigger than it really is.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/sha512_generic.c