diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-02-16 23:00:19 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-02-16 23:00:19 +0100 |
commit | 975b26ab307e30e7ccec2a83eae6c017622a9125 (patch) | |
tree | 01eed3a441f8751dec3a95ff74ce45eed93d5409 /kernel | |
parent | Merge tag 'block-6.8-2024-02-16' of git://git.kernel.dk/linux (diff) | |
parent | Revert "workqueue: Override implicit ordered attribute in workqueue_apply_unb... (diff) | |
download | linux-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.c | 8 |
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)) { |