summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0282-revert-block.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:21:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:21:37 +0000
commit06343b27411344fc542f4f3a643f8441aa35252d (patch)
tree66aa45187c93c350bbdf7e6ae4467a70bf3a8f4c /debian/patches-rt/0282-revert-block.patch
parentMerging upstream version 4.19.260. (diff)
downloadlinux-06343b27411344fc542f4f3a643f8441aa35252d.tar.xz
linux-06343b27411344fc542f4f3a643f8441aa35252d.zip
Adding debian version 4.19.260-1.debian/4.19.260-1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0282-revert-block.patch')
-rw-r--r--debian/patches-rt/0282-revert-block.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/debian/patches-rt/0282-revert-block.patch b/debian/patches-rt/0282-revert-block.patch
new file mode 100644
index 000000000..dd7be9b97
--- /dev/null
+++ b/debian/patches-rt/0282-revert-block.patch
@@ -0,0 +1,79 @@
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Fri, 20 Sep 2019 17:50:54 -0400
+Subject: [PATCH 282/342] revert-block
+Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=e13e0ac0a7e8bc9f08dae4cab727db6ad6ee35a4
+
+Revert swork version of: block: blk-mq: move blk_queue_usage_counter_release() into process context
+
+In order to switch to upstream, we need to revert the swork code.
+
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+---
+ block/blk-core.c | 14 +-------------
+ include/linux/blkdev.h | 2 --
+ 2 files changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index 02835970ef1e..461a93c08c14 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -973,21 +973,12 @@ void blk_queue_exit(struct request_queue *q)
+ percpu_ref_put(&q->q_usage_counter);
+ }
+
+-static void blk_queue_usage_counter_release_swork(struct swork_event *sev)
+-{
+- struct request_queue *q =
+- container_of(sev, struct request_queue, mq_pcpu_wake);
+-
+- wake_up_all(&q->mq_freeze_wq);
+-}
+-
+ static void blk_queue_usage_counter_release(struct percpu_ref *ref)
+ {
+ struct request_queue *q =
+ container_of(ref, struct request_queue, q_usage_counter);
+
+- if (wq_has_sleeper(&q->mq_freeze_wq))
+- swork_queue(&q->mq_pcpu_wake);
++ wake_up_all(&q->mq_freeze_wq);
+ }
+
+ static void blk_rq_timed_out_timer(struct timer_list *t)
+@@ -1087,7 +1078,6 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id,
+ queue_flag_set_unlocked(QUEUE_FLAG_BYPASS, q);
+
+ init_waitqueue_head(&q->mq_freeze_wq);
+- INIT_SWORK(&q->mq_pcpu_wake, blk_queue_usage_counter_release_swork);
+
+ /*
+ * Init percpu_ref in atomic mode so that it's faster to shutdown.
+@@ -3977,8 +3967,6 @@ int __init blk_dev_init(void)
+ if (!kblockd_workqueue)
+ panic("Failed to create kblockd\n");
+
+- BUG_ON(swork_get());
+-
+ request_cachep = kmem_cache_create("blkdev_requests",
+ sizeof(struct request), 0, SLAB_PANIC, NULL);
+
+diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
+index 0313098a428d..39d90bf9b5fa 100644
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -27,7 +27,6 @@
+ #include <linux/percpu-refcount.h>
+ #include <linux/scatterlist.h>
+ #include <linux/blkzoned.h>
+-#include <linux/swork.h>
+
+ struct module;
+ struct scsi_ioctl_command;
+@@ -665,7 +664,6 @@ struct request_queue {
+ #endif
+ struct rcu_head rcu_head;
+ wait_queue_head_t mq_freeze_wq;
+- struct swork_event mq_pcpu_wake;
+ struct percpu_ref q_usage_counter;
+ struct list_head all_q_node;
+