hwrng: core - only set cur_rng_set_by_user if it is working
authorDominik Brodowski <linux@dominikbrodowski.net>
Mon, 24 Jan 2022 20:29:49 +0000 (21:29 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 5 Feb 2022 04:10:49 +0000 (15:10 +1100)
In case the user-specified rng device is not working, it is not used;
therefore cur_rng_set_by_user must not be set to 1.

Cc: Matt Mackall <mpm@selenic.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/core.c

index 89891ac..9405fcd 100644 (file)
@@ -335,8 +335,9 @@ static ssize_t rng_current_store(struct device *dev,
        } else {
                list_for_each_entry(rng, &rng_list, list) {
                        if (sysfs_streq(rng->name, buf)) {
-                               cur_rng_set_by_user = 1;
                                err = set_current_rng(rng);
+                               if (!err)
+                                       cur_rng_set_by_user = 1;
                                break;
                        }
                }