crypto: padlock - Avoid resetting cword on successive operations
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 31 Aug 2008 05:58:45 +0000 (15:58 +1000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 25 Dec 2008 00:01:20 +0000 (11:01 +1100)
commit420a4b20c504e4674bf253601f793bdb254f99fa
tree574f50a8ac2a5f8abfbbdec1519a47ae837a3381
parent1c06da81a5d042d5fba67c4c533b16ae62a174ab
crypto: padlock - Avoid resetting cword on successive operations

Resetting the control word is quite expensive.  Fortunately this
isn't an issue for the common operations such as CBC and ECB as
the whole operation is done through a single call.  However, modes
such as LRW and XTS have to call padlock over and over again for
one operation which really hurts if each call resets the control
word.

This patch uses an idea by Sebastian Siewior to store the last
control word used on a CPU and only reset the control word if
that changes.

Note that any task switch automatically resets the control word
so we only need to be accurate with regard to the stored control
word when no task switches occur.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/padlock-aes.c