Revision 9f28ffc03e93343ac04874fda9edb7affea45165 authored by David S. Miller on 19 December 2012, 23:19:11 UTC, committed by David S. Miller on 19 December 2012, 23:19:11 UTC
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>
1 parent 4a9d194
History
File Mode Size
Kconfig -rw-r--r-- 10.5 KB
Makefile -rw-r--r-- 2.2 KB
amd64_edac.c -rw-r--r-- 70.9 KB
amd64_edac.h -rw-r--r-- 14.5 KB
amd64_edac_dbg.c -rw-r--r-- 2.0 KB
amd64_edac_inj.c -rw-r--r-- 6.5 KB
amd76x_edac.c -rw-r--r-- 9.4 KB
amd8111_edac.c -rw-r--r-- 16.4 KB
amd8111_edac.h -rw-r--r-- 4.1 KB
amd8131_edac.c -rw-r--r-- 10.7 KB
amd8131_edac.h -rw-r--r-- 3.7 KB
cell_edac.c -rw-r--r-- 7.8 KB
cpc925_edac.c -rw-r--r-- 31.7 KB
e752x_edac.c -rw-r--r-- 41.0 KB
e7xxx_edac.c -rw-r--r-- 16.3 KB
edac_core.h -rw-r--r-- 14.0 KB
edac_device.c -rw-r--r-- 19.7 KB
edac_device_sysfs.c -rw-r--r-- 23.4 KB
edac_mc.c -rw-r--r-- 32.0 KB
edac_mc_sysfs.c -rw-r--r-- 28.8 KB
edac_module.c -rw-r--r-- 3.1 KB
edac_module.h -rw-r--r-- 3.0 KB
edac_pci.c -rw-r--r-- 11.4 KB
edac_pci_sysfs.c -rw-r--r-- 19.4 KB
edac_stub.c -rw-r--r-- 2.0 KB
highbank_l2_edac.c -rw-r--r-- 3.8 KB
highbank_mc_edac.c -rw-r--r-- 6.9 KB
i3000_edac.c -rw-r--r-- 13.9 KB
i3200_edac.c -rw-r--r-- 12.5 KB
i5000_edac.c -rw-r--r-- 42.4 KB
i5100_edac.c -rw-r--r-- 25.6 KB
i5400_edac.c -rw-r--r-- 40.1 KB
i7300_edac.c -rw-r--r-- 35.1 KB
i7core_edac.c -rw-r--r-- 63.5 KB
i82443bxgx_edac.c -rw-r--r-- 13.8 KB
i82860_edac.c -rw-r--r-- 9.2 KB
i82875p_edac.c -rw-r--r-- 14.9 KB
i82975x_edac.c -rw-r--r-- 18.3 KB
mce_amd.c -rw-r--r-- 16.6 KB
mce_amd.h -rw-r--r-- 1.8 KB
mce_amd_inj.c -rw-r--r-- 4.2 KB
mpc85xx_edac.c -rw-r--r-- 33.0 KB
mpc85xx_edac.h -rw-r--r-- 4.6 KB
mv64x60_edac.c -rw-r--r-- 22.5 KB
mv64x60_edac.h -rw-r--r-- 3.2 KB
octeon_edac-l2c.c -rw-r--r-- 5.3 KB
octeon_edac-lmc.c -rw-r--r-- 4.7 KB
octeon_edac-pc.c -rw-r--r-- 3.5 KB
octeon_edac-pci.c -rw-r--r-- 2.8 KB
pasemi_edac.c -rw-r--r-- 8.6 KB
ppc4xx_edac.c -rw-r--r-- 39.5 KB
ppc4xx_edac.h -rw-r--r-- 7.2 KB
r82600_edac.c -rw-r--r-- 11.8 KB
sb_edac.c -rw-r--r-- 44.3 KB
tile_edac.c -rw-r--r-- 6.5 KB
x38_edac.c -rw-r--r-- 12.1 KB

back to top