random: fix locking for crng_init in crng_reseed()
authorDominik Brodowski <linux@dominikbrodowski.net>
Wed, 9 Feb 2022 18:57:06 +0000 (19:57 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 May 2022 07:29:06 +0000 (09:29 +0200)
commit86ab60616ec6827b98b0f2c6ee96fcca77c018e2
tree6beaf47c857ea3f8f3d73dc8c65cff1745b6f4ac
parentd2d1ad9430b1e23aa2f82bca561e85868c519383
random: fix locking for crng_init in crng_reseed()

commit 7191c628fe07b70d3f37de736d173d1b115396ed upstream.

crng_init is protected by primary_crng->lock. Therefore, we need
to hold this lock when increasing crng_init to 2. As we shouldn't
hold this lock for too long, only hold it for those parts which
require protection.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/random.c