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

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

diff --git a/queue-5.15/revert-random-use-static-branch-for-crng_ready.patch b/queue-5.15/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 0452b0f8f9d4d27b89970ce916cadf9e49fd8bf9..d8404ac916d7d14d47d607124f9199d9b1e8def4 100644 (file)
@@ -650,3 +650,4 @@ net-ipa-fix-page-free-in-ipa_endpoint_trans_release.patch
 net-ipa-fix-page-free-in-ipa_endpoint_replenish_one.patch
 kseltest-cgroup-make-test_stress.sh-work-if-run-interactively.patch
 list-test-add-a-test-for-list_is_head.patch
+revert-random-use-static-branch-for-crng_ready.patch