]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jun 2022 09:17:00 +0000 (11:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jun 2022 09:17:00 +0000 (11:17 +0200)
added patches:
revert-random-use-static-branch-for-crng_ready.patch

queue-5.10/revert-random-use-static-branch-for-crng_ready.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/revert-random-use-static-branch-for-crng_ready.patch b/queue-5.10/revert-random-use-static-branch-for-crng_ready.patch
new file mode 100644 (file)
index 0000000..c944a52
--- /dev/null
@@ -0,0 +1,68 @@
+From Jason@zx2c4.com  Tue Jun  7 11:12:02 2022
+From: "Jason A. Donenfeld" <Jason@zx2c4.com>
+Date: Tue,  7 Jun 2022 10:40:05 +0200
+Subject: Revert "random: use static branch for crng_ready()"
+To: stable@vger.kernel.org, gregkh@linuxfoundation.org
+Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
+Message-ID: <20220607084005.666059-1-Jason@zx2c4.com>
+
+From: "Jason A. Donenfeld" <Jason@zx2c4.com>
+
+This reverts upstream commit f5bda35fba615ace70a656d4700423fa6c9bebee
+from stable. It's not essential and will take some time during 5.19 to
+work out properly.
+
+Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
+---
+ drivers/char/random.c |   12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+--- a/drivers/char/random.c
++++ b/drivers/char/random.c
+@@ -79,8 +79,7 @@ static enum {
+       CRNG_EARLY = 1, /* At least POOL_EARLY_BITS collected */
+       CRNG_READY = 2  /* Fully initialized with POOL_READY_BITS collected */
+ } crng_init __read_mostly = CRNG_EMPTY;
+-static DEFINE_STATIC_KEY_FALSE(crng_is_ready);
+-#define crng_ready() (static_branch_likely(&crng_is_ready) || crng_init >= CRNG_READY)
++#define crng_ready() (likely(crng_init >= CRNG_READY))
+ /* Various types of waiters for crng_init->CRNG_READY transition. */
+ static DECLARE_WAIT_QUEUE_HEAD(crng_init_wait);
+ static struct fasync_struct *fasync;
+@@ -110,11 +109,6 @@ bool rng_is_initialized(void)
+ }
+ EXPORT_SYMBOL(rng_is_initialized);
+-static void __cold crng_set_ready(struct work_struct *work)
+-{
+-      static_branch_enable(&crng_is_ready);
+-}
+-
+ /* Used by wait_for_random_bytes(), and considered an entropy collector, below. */
+ static void try_to_generate_entropy(void);
+@@ -268,7 +262,7 @@ static void crng_reseed(void)
+               ++next_gen;
+       WRITE_ONCE(base_crng.generation, next_gen);
+       WRITE_ONCE(base_crng.birth, jiffies);
+-      if (!static_branch_likely(&crng_is_ready))
++      if (!crng_ready())
+               crng_init = CRNG_READY;
+       spin_unlock_irqrestore(&base_crng.lock, flags);
+       memzero_explicit(key, sizeof(key));
+@@ -711,7 +705,6 @@ static void extract_entropy(void *buf, s
+ static void __cold _credit_init_bits(size_t bits)
+ {
+-      static struct execute_work set_ready;
+       unsigned int new, orig, add;
+       unsigned long flags;
+@@ -727,7 +720,6 @@ static void __cold _credit_init_bits(siz
+       if (orig < POOL_READY_BITS && new >= POOL_READY_BITS) {
+               crng_reseed(); /* Sets crng_init to CRNG_READY under base_crng.lock. */
+-              execute_in_process_context(crng_set_ready, &set_ready);
+               process_random_ready_list();
+               wake_up_interruptible(&crng_init_wait);
+               kill_fasync(&fasync, SIGIO, POLL_IN);
index 8f6ca7b8b6fbc8f41d16e113e6777443099e13f4..510bae2e3f98f5c23aa13c9e7d1de71707e697f6 100644 (file)
@@ -444,3 +444,4 @@ bfq-remove-pointless-bfq_init_rq-calls.patch
 bfq-get-rid-of-__bio_blkcg-usage.patch
 bfq-make-sure-bfqg-for-which-we-are-queueing-requests-is-online.patch
 block-fix-bio_clone_blkg_association-to-associate-with-proper-blkcg_gq.patch
+revert-random-use-static-branch-for-crng_ready.patch