Skip to content

Commit aac8a59

Browse files
committed
Revert "workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()"
This reverts commit ca10d85. The commit allowed workqueue_apply_unbound_cpumask() to clear __WQ_ORDERED on now removed implicitly ordered workqueues. This was incorrect in that system-wide config change shouldn't break ordering properties of all workqueues. The reason why apply_workqueue_attrs() path was allowed to do so was because it was targeting the specific workqueue - either the workqueue had WQ_SYSFS set or the workqueue user specifically tried to change max_active, both of which indicate that the workqueue doesn't need to be ordered. The implicitly ordered workqueue promotion was removed by the previous commit 3bc1e71 ("workqueue: Don't implicitly make UNBOUND workqueues w/ @max_active==1 ordered"). However, it didn't update this path and broke build. Let's revert the commit which was incorrect in the first place which also fixes build. Signed-off-by: Tejun Heo <tj@kernel.org> Fixes: 3bc1e71 ("workqueue: Don't implicitly make UNBOUND workqueues w/ @max_active==1 ordered") Fixes: ca10d85 ("workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()") Cc: stable@vger.kernel.org # v6.6+ Signed-off-by: Tejun Heo <tj@kernel.org>
1 parent 052d534 commit aac8a59

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

kernel/workqueue.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5786,13 +5786,9 @@ static int workqueue_apply_unbound_cpumask(const cpumask_var_t unbound_cpumask)
57865786
list_for_each_entry(wq, &workqueues, list) {
57875787
if (!(wq->flags & WQ_UNBOUND))
57885788
continue;
5789-
57905789
/* creating multiple pwqs breaks ordering guarantee */
5791-
if (!list_empty(&wq->pwqs)) {
5792-
if (wq->flags & __WQ_ORDERED_EXPLICIT)
5793-
continue;
5794-
wq->flags &= ~__WQ_ORDERED;
5795-
}
5790+
if (wq->flags & __WQ_ORDERED)
5791+
continue;
57965792

57975793
ctx = apply_wqattrs_prepare(wq, wq->unbound_attrs, unbound_cpumask);
57985794
if (IS_ERR(ctx)) {

0 commit comments

Comments
 (0)