summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-02-16 23:00:19 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2024-02-16 23:00:19 +0100
commit975b26ab307e30e7ccec2a83eae6c017622a9125 (patch)
tree01eed3a441f8751dec3a95ff74ce45eed93d5409 /kernel
parentMerge tag 'block-6.8-2024-02-16' of git://git.kernel.dk/linux (diff)
parentRevert "workqueue: Override implicit ordered attribute in workqueue_apply_unb... (diff)
downloadlinux-975b26ab307e30e7ccec2a83eae6c017622a9125.tar.xz
linux-975b26ab307e30e7ccec2a83eae6c017622a9125.zip
Merge tag 'wq-for-6.8-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue fix from Tejun Heo: "Just one patch to revert commit ca10d851b9ad ("workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()"). This commit could break ordering guarantees for ordered workqueues. The problem that the commit tried to resolve partially - making ordered workqueues follow unbound cpumask - is fully solved in wq/for-6.9 branch" * tag 'wq-for-6.8-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: Revert "workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()"
Diffstat (limited to 'kernel')
-rw-r--r--kernel/workqueue.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 76e60faed892..7b482a26d741 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -5786,13 +5786,9 @@ static int workqueue_apply_unbound_cpumask(const cpumask_var_t unbound_cpumask)
list_for_each_entry(wq, &workqueues, list) {
if (!(wq->flags & WQ_UNBOUND))
continue;
-
/* creating multiple pwqs breaks ordering guarantee */
- if (!list_empty(&wq->pwqs)) {
- if (wq->flags & __WQ_ORDERED_EXPLICIT)
- continue;
- wq->flags &= ~__WQ_ORDERED;
- }
+ if (wq->flags & __WQ_ORDERED)
+ continue;
ctx = apply_wqattrs_prepare(wq, wq->unbound_attrs, unbound_cpumask);
if (IS_ERR(ctx)) {