diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-04-30 18:18:24 +0200 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-05-12 00:13:08 +0800 |
commit | 0c8f838a52fe9fd82761861a934f16ef9896b4e5 (patch) | |
tree | b9bca605fcd4d97bf6835f1113d20502dcffeb96 /arch/arm64/crypto/aes-ce.S | |
parent | 7b67ae4d5ce8e2f912377f5fbccb95811a92097f (diff) | |
download | blackbird-op-linux-0c8f838a52fe9fd82761861a934f16ef9896b4e5.tar.gz blackbird-op-linux-0c8f838a52fe9fd82761861a934f16ef9896b4e5.zip |
crypto: arm64/aes-blk - yield NEON after every block of input
Avoid excessive scheduling delays under a preemptible kernel by
yielding the NEON after every block of input.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'arch/arm64/crypto/aes-ce.S')
-rw-r--r-- | arch/arm64/crypto/aes-ce.S | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm64/crypto/aes-ce.S b/arch/arm64/crypto/aes-ce.S index 50330f5c3adc..623e74ed1c67 100644 --- a/arch/arm64/crypto/aes-ce.S +++ b/arch/arm64/crypto/aes-ce.S @@ -30,18 +30,21 @@ .endm /* prepare for encryption with key in rk[] */ - .macro enc_prepare, rounds, rk, ignore - load_round_keys \rounds, \rk + .macro enc_prepare, rounds, rk, temp + mov \temp, \rk + load_round_keys \rounds, \temp .endm /* prepare for encryption (again) but with new key in rk[] */ - .macro enc_switch_key, rounds, rk, ignore - load_round_keys \rounds, \rk + .macro enc_switch_key, rounds, rk, temp + mov \temp, \rk + load_round_keys \rounds, \temp .endm /* prepare for decryption with key in rk[] */ - .macro dec_prepare, rounds, rk, ignore - load_round_keys \rounds, \rk + .macro dec_prepare, rounds, rk, temp + mov \temp, \rk + load_round_keys \rounds, \temp .endm .macro do_enc_Nx, de, mc, k, i0, i1, i2, i3 |