Description
In the Linux kernel, the following vulnerability has been resolved: sched_ext: Wait for SCX_OPSS_DISPATCHING before reenqueueing a task ebf1ccff79c4 ("sched_ext: Fix ops.dequeue() semantics") moved the final ops_state store in scx_dispatch_enqueue() after the DSQ unlock so that the custody update and ops.dequeue() precede it. A task can thus be found on a DSQ while still SCX_OPSS_DISPATCHING. The dequeue and core-sched pick paths wait for the state to clear in ops_dequeue() but the reenqueue paths don't. A reenqueue in that window runs ops.enqueue() and sets SCX_OPSS_QUEUED before the dispatch has completed. The dispatcher's final store then overwrites it with SCX_OPSS_NONE and finish_dispatch() drops every later dispatch of the task. Wait for SCX_OPSS_DISPATCHING to clear before dequeueing a task for reenqueue, the same way ops_dequeue() does.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
ebf1ccff79c43f860cbd2f9d6cfab9a462d0cb2d to < 43457bf6550044c40bd6d3fcdf9ea66f5a55d139affectedebf1ccff79c43f860cbd2f9d6cfab9a462d0cb2d to < 7de9a6fb44eae4f05e68c805d58b9c618815adfaaffected
Linux Linux
Default version status: affected
7.1affected0 to < 7.1unaffected7.2.10 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected