diff --git a/linuxkm/module_hooks.c b/linuxkm/module_hooks.c index 3f703add0..783307527 100644 --- a/linuxkm/module_hooks.c +++ b/linuxkm/module_hooks.c @@ -234,6 +234,16 @@ static int wolfssl_init(void) "] POST succeeded.\n"); #endif /* HAVE_FIPS */ +#ifdef WC_RNG_SEED_CB + ret = wc_SetSeed_Cb(wc_GenerateSeed); + if (ret < 0) { + pr_err("wc_SetSeed_Cb() failed with return code %d.\n", ret); + (void)libwolfssl_cleanup(); + msleep(10); + return -ECANCELED; + } +#endif + #ifdef WOLFCRYPT_ONLY ret = wolfCrypt_Init(); if (ret != 0) { @@ -249,14 +259,7 @@ static int wolfssl_init(void) #endif #ifndef NO_CRYPT_TEST - -#ifdef WC_RNG_SEED_CB - ret = wc_SetSeed_Cb(wc_GenerateSeed); - if (ret == 0) -#endif - { - ret = wolfcrypt_test(NULL); - } + ret = wolfcrypt_test(NULL); if (ret < 0) { pr_err("wolfcrypt self-test failed with return code %d.\n", ret); (void)libwolfssl_cleanup();