From bc8460e54aa4363ff1bb30ae9c79a56558154729 Mon Sep 17 00:00:00 2001 From: Tao Huang Date: Thu, 19 Mar 2020 19:16:35 +0800 Subject: [PATCH] crypto: algboss - Don't create test kthread when CONFIG_CRYPTO_MANAGER_DISABLE_TESTS When CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y, it is no need to create kthread cryptomgr_test, which almost do nothing but crypto_alg_tested(). Just call crypto_alg_tested() in cryptomgr_schedule_test() directly. Save boot time about 7ms on rk3126-bnd-d708 board. Change-Id: If465f8419dba4ea955df157b3405f3267a96c7d6 Signed-off-by: Tao Huang --- crypto/algboss.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/crypto/algboss.c b/crypto/algboss.c index 5e6df2a087fa..8e1cfeb33d2d 100644 --- a/crypto/algboss.c +++ b/crypto/algboss.c @@ -207,6 +207,7 @@ err: return NOTIFY_OK; } +#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS static int cryptomgr_test(void *data) { struct crypto_test_param *param = data; @@ -228,10 +229,13 @@ skiptest: kfree(param); module_put_and_exit(0); } +#endif /* CONFIG_CRYPTO_MANAGER_DISABLE_TESTS */ static int cryptomgr_schedule_test(struct crypto_alg *alg) { +#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS struct task_struct *thread; +#endif struct crypto_test_param *param; u32 type; @@ -252,14 +256,23 @@ static int cryptomgr_schedule_test(struct crypto_alg *alg) param->type = type; +#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS thread = kthread_run(cryptomgr_test, param, "cryptomgr_test"); if (IS_ERR(thread)) goto err_free_param; +#else + crypto_alg_tested(param->driver, 0); + + kfree(param); + module_put(THIS_MODULE); +#endif return NOTIFY_STOP; +#ifndef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS err_free_param: kfree(param); +#endif err_put_module: module_put(THIS_MODULE); err: