[CRYPTO] Add plumbing for multi-block operations
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 6 Jul 2005 20:51:31 +0000 (13:51 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Jul 2005 20:51:31 +0000 (13:51 -0700)
commitc774e93e2152d0be2612739418689e6e6400f4eb
treeabe25ec0577bd95128adb3f38609a09f0a3e2469
parent8279dd748f9704b811e528b31304e2fab026abc5
[CRYPTO] Add plumbing for multi-block operations

The VIA Padlock device is able to perform much better when multiple
blocks are fed to it at once.  As this device offers an exceptional
throughput rate it is worthwhile to optimise the infrastructure
specifically for it.

We shift the existing page-sized fast path down to the CBC/ECB functions.
We can then replace the CBC/ECB functions with functions provided by the
underlying algorithm that performs the multi-block operations.

As a side-effect this improves the performance of large cipher operations
for all existing algorithm implementations.  I've measured the gain to be
around 5% for 3DES and 15% for AES.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
crypto/cipher.c
crypto/scatterwalk.c
crypto/scatterwalk.h