diff --git a/crypto/algapi.c b/crypto/algapi.c index 2d0a1c64ce396f745956fd1f0876b5e00f21f947..d2627a3d4ed8b15cf53127b11daaad412a950711 100644 --- a/crypto/algapi.c +++ b/crypto/algapi.c @@ -525,12 +525,12 @@ int crypto_register_instance(struct crypto_template *tmpl, if (err) return err; - if (unlikely(!crypto_mod_get(&inst->alg))) - return -EAGAIN; - inst->alg.cra_module = tmpl->module; inst->alg.cra_flags |= CRYPTO_ALG_INSTANCE; + if (unlikely(!crypto_mod_get(&inst->alg))) + return -EAGAIN; + down_write(&crypto_alg_sem); larval = __crypto_register_alg(&inst->alg);