kernel-ark/arch/sparc/crypto
David S. Miller 9f28ffc03e sparc64: Fix unrolled AES 256-bit key loops.
The basic scheme of the block mode assembler is that we start by
enabling the FPU, loading the key into the floating point registers,
then iterate calling the encrypt/decrypt routine for each block.

For the 256-bit key cases, we run short on registers in the unrolled
loops.

So the {ENCRYPT,DECRYPT}_256_2() macros reload the key registers that
get clobbered.

The unrolled macros, {ENCRYPT,DECRYPT}_256(), are not mindful of this.

So if we have a mix of multi-block and single-block calls, the
single-block unrolled 256-bit encrypt/decrypt can run with some
of the key registers clobbered.

Handle this by always explicitly loading those registers before using
the non-unrolled 256-bit macro.

This was discovered thanks to all of the new test cases added by
Jussi Kivilinna.

Signed-off-by: David S. Miller <davem@davemloft.net>
2012-12-19 15:19:11 -08:00
..
aes_asm.S sparc64: Fix unrolled AES 256-bit key loops. 2012-12-19 15:19:11 -08:00
aes_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
camellia_asm.S sparc64: Fix function argument comment in camellia_sparc64_key_expand asm. 2012-09-21 12:04:51 -07:00
camellia_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
crc32c_asm.S sparc64: Avoid code duplication in crypto assembler. 2012-08-31 12:11:51 -07:00
crc32c_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
crop_devid.c sparc64: Add auto-loading mechanism to crypto-opcode drivers. 2012-09-15 09:46:25 -07:00
des_asm.S sparc64: Fix IV handling bug in des_sparc64_cbc_decrypt 2012-09-17 19:57:30 -07:00
des_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
Makefile sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
md5_asm.S sparc64: Avoid code duplication in crypto assembler. 2012-08-31 12:11:51 -07:00
md5_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
opcodes.h sparc64: Adjust crypto priorities. 2012-09-15 09:06:30 -07:00
sha1_asm.S sparc64: Avoid code duplication in crypto assembler. 2012-08-31 12:11:51 -07:00
sha1_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
sha256_asm.S sparc64: Avoid code duplication in crypto assembler. 2012-08-31 12:11:51 -07:00
sha256_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00
sha512_asm.S sparc64: Avoid code duplication in crypto assembler. 2012-08-31 12:11:51 -07:00
sha512_glue.c sparc64: Fix build with mix of modular vs. non-modular crypto drivers. 2012-11-09 20:55:16 -08:00