Commit 82e269ad authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Herbert Xu

crypto: testmgr - Only disable migration in crypto_disable_simd_for_test()

crypto_disable_simd_for_test() disables preemption in order to receive a
stable per-CPU variable which it needs to modify in order to alter
crypto_simd_usable() results.

This can also be achived by migrate_disable() which forbidds CPU
migrations but allows the task to be preempted. The latter is important
for PREEMPT_RT since operation like skcipher_walk_first() may allocate
memory which must not happen with disabled preemption on PREEMPT_RT.

Use migrate_disable() in crypto_disable_simd_for_test() to achieve a
stable per-CPU pointer.
Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 32dfef6f
...@@ -1061,14 +1061,14 @@ static void generate_random_testvec_config(struct testvec_config *cfg, ...@@ -1061,14 +1061,14 @@ static void generate_random_testvec_config(struct testvec_config *cfg,
static void crypto_disable_simd_for_test(void) static void crypto_disable_simd_for_test(void)
{ {
preempt_disable(); migrate_disable();
__this_cpu_write(crypto_simd_disabled_for_test, true); __this_cpu_write(crypto_simd_disabled_for_test, true);
} }
static void crypto_reenable_simd_for_test(void) static void crypto_reenable_simd_for_test(void)
{ {
__this_cpu_write(crypto_simd_disabled_for_test, false); __this_cpu_write(crypto_simd_disabled_for_test, false);
preempt_enable(); migrate_enable();
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment