]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - kernel/task_work.c
userns: prevent speculative execution
[mirror_ubuntu-artful-kernel.git] / kernel / task_work.c
index d513051fcca271e560eeb9e181373609cf83a65c..0371093a23315ffaf655e5c3a3399073590a3066 100644 (file)
@@ -67,7 +67,7 @@ task_work_cancel(struct task_struct *task, task_work_func_t func)
         * we raced with task_work_run(), *pprev == NULL/exited.
         */
        raw_spin_lock_irqsave(&task->pi_lock, flags);
-       while ((work = lockless_dereference(*pprev))) {
+       while ((work = READ_ONCE(*pprev))) {
                if (work->func != func)
                        pprev = &work->next;
                else if (cmpxchg(pprev, work, work->next) == work)
@@ -119,3 +119,4 @@ void task_work_run(void)
                } while (work);
        }
 }
+EXPORT_SYMBOL_GPL(task_work_run);