]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jun 2022 09:44:38 +0000 (11:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jun 2022 09:44:38 +0000 (11:44 +0200)
added patches:
rdma-rxe-generate-a-completion-for-unsupported-invalid-opcode.patch

queue-4.14/rdma-rxe-generate-a-completion-for-unsupported-invalid-opcode.patch [new file with mode: 0644]
queue-4.14/revert-random-use-static-branch-for-crng_ready.patch [deleted file]
queue-4.14/series

diff --git a/queue-4.14/rdma-rxe-generate-a-completion-for-unsupported-invalid-opcode.patch b/queue-4.14/rdma-rxe-generate-a-completion-for-unsupported-invalid-opcode.patch
new file mode 100644 (file)
index 0000000..d72d335
--- /dev/null
@@ -0,0 +1,35 @@
+From 2f917af777011c88e977b9b9a5d00b280d3a59ce Mon Sep 17 00:00:00 2001
+From: Xiao Yang <yangx.jy@fujitsu.com>
+Date: Sun, 10 Apr 2022 19:35:13 +0800
+Subject: RDMA/rxe: Generate a completion for unsupported/invalid opcode
+
+From: Xiao Yang <yangx.jy@fujitsu.com>
+
+commit 2f917af777011c88e977b9b9a5d00b280d3a59ce upstream.
+
+Current rxe_requester() doesn't generate a completion when processing an
+unsupported/invalid opcode. If rxe driver doesn't support a new opcode
+(e.g. RDMA Atomic Write) and RDMA library supports it, an application
+using the new opcode can reproduce this issue. Fix the issue by calling
+"goto err;".
+
+Fixes: 8700e3e7c485 ("Soft RoCE driver")
+Link: https://lore.kernel.org/r/20220410113513.27537-1-yangx.jy@fujitsu.com
+Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
+Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/infiniband/sw/rxe/rxe_req.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/infiniband/sw/rxe/rxe_req.c
++++ b/drivers/infiniband/sw/rxe/rxe_req.c
+@@ -680,7 +680,7 @@ next_wqe:
+       opcode = next_opcode(qp, wqe, wqe->wr.opcode);
+       if (unlikely(opcode < 0)) {
+               wqe->status = IB_WC_LOC_QP_OP_ERR;
+-              goto exit;
++              goto err;
+       }
+       mask = rxe_opcode[opcode].mask;
diff --git a/queue-4.14/revert-random-use-static-branch-for-crng_ready.patch b/queue-4.14/revert-random-use-static-branch-for-crng_ready.patch
deleted file mode 100644 (file)
index e9c9249..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-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(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 7a66eec08e37..0cfbfa8d5b50 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -78,8 +78,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;
-@@ -109,11 +108,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);
-@@ -267,7 +261,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));
-@@ -710,7 +704,6 @@ static void extract_entropy(void *buf, size_t len)
- static void __cold _credit_init_bits(size_t bits)
- {
--      static struct execute_work set_ready;
-       unsigned int new, orig, add;
-       unsigned long flags;
-@@ -726,7 +719,6 @@ static void __cold _credit_init_bits(size_t bits)
-       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);
--- 
-2.35.1
-
index 6c5593cd4af054ff13d5f9673881e0f7c34b885d..94905b7d5dfd938a95c83d43be5f26b7e6769a31 100644 (file)
@@ -135,4 +135,4 @@ phy-qcom-qmp-fix-struct-clk-leak-on-probe-errors.patch
 docs-conf.py-cope-with-removal-of-language-none-in-sphinx-5.0.0.patch
 dt-bindings-gpio-altera-correct-interrupt-cells.patch
 phy-qcom-qmp-fix-reset-controller-leak-on-probe-errors.patch
-revert-random-use-static-branch-for-crng_ready.patch
+rdma-rxe-generate-a-completion-for-unsupported-invalid-opcode.patch