Merge tag 'char-misc-5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
[linux-2.6-microblaze.git] / crypto / rng.c
index a888d84..fea082b 100644 (file)
@@ -34,22 +34,18 @@ int crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)
        u8 *buf = NULL;
        int err;
 
-       crypto_stats_get(alg);
        if (!seed && slen) {
                buf = kmalloc(slen, GFP_KERNEL);
-               if (!buf) {
-                       crypto_alg_put(alg);
+               if (!buf)
                        return -ENOMEM;
-               }
 
                err = get_random_bytes_wait(buf, slen);
-               if (err) {
-                       crypto_alg_put(alg);
+               if (err)
                        goto out;
-               }
                seed = buf;
        }
 
+       crypto_stats_get(alg);
        err = crypto_rng_alg(tfm)->seed(tfm, seed, slen);
        crypto_stats_rng_seed(alg, err);
 out: