diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-11-03 14:45:16 -0800 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-11-03 14:45:16 -0800 |
| commit | 84a73014d86fd660822a20c032625e3afe99ca58 (patch) | |
| tree | 9e42a2d3c40730947ae18363d00e8a0ee2743792 /kernel/task_work.c | |
| parent | 195562194aad3a0a3915941077f283bcc6347b9b (diff) | |
| parent | bf5f18d708802737fa0db6306f6b9148f85b2efd (diff) | |
Merge branch 'next' into for-linus
Prepare first round of input updates for 4.3 merge window.
Diffstat (limited to 'kernel/task_work.c')
| -rw-r--r-- | kernel/task_work.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/kernel/task_work.c b/kernel/task_work.c index 8727032e3a6f..53fa971d000d 100644 --- a/kernel/task_work.c +++ b/kernel/task_work.c @@ -18,6 +18,8 @@ static struct callback_head work_exited; /* all we need is ->next == NULL */ * This is like the signal handler which runs in kernel mode, but it doesn't * try to wake up the @task. * + * Note: there is no ordering guarantee on works queued here. + * * RETURNS: * 0 if succeeds or -ESRCH. */ @@ -108,16 +110,6 @@ void task_work_run(void) raw_spin_unlock_wait(&task->pi_lock); smp_mb(); - /* Reverse the list to run the works in fifo order */ - head = NULL; - do { - next = work->next; - work->next = head; - head = work; - work = next; - } while (work); - - work = head; do { next = work->next; work->func(work); |
