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
mmp
mvebu
mxs
socfpga
spear
ux500
versatile
Kconfig -rw-r--r-- 1.8 KB
Makefile -rw-r--r-- 1.0 KB
clk-bcm2835.c -rw-r--r-- 1.9 KB
clk-devres.c -rw-r--r-- 1.1 KB
clk-divider.c -rw-r--r-- 8.4 KB
clk-fixed-factor.c -rw-r--r-- 2.5 KB
clk-fixed-rate.c -rw-r--r-- 2.8 KB
clk-gate.c -rw-r--r-- 3.7 KB
clk-highbank.c -rw-r--r-- 8.1 KB
clk-ls1x.c -rw-r--r-- 2.8 KB
clk-max77686.c -rw-r--r-- 5.7 KB
clk-mux.c -rw-r--r-- 3.2 KB
clk-nomadik.c -rw-r--r-- 1.5 KB
clk-prima2.c -rw-r--r-- 25.8 KB
clk-sunxi.c -rw-r--r-- 906 bytes
clk-twl6040.c -rw-r--r-- 3.2 KB
clk-u300.c -rw-r--r-- 21.4 KB
clk-vt8500.c -rw-r--r-- 12.5 KB
clk-wm831x.c -rw-r--r-- 9.8 KB
clk-zynq.c -rw-r--r-- 9.3 KB
clk.c -rw-r--r-- 43.6 KB
clkdev.c -rw-r--r-- 7.4 KB

back to top