summaryrefslogtreecommitdiff
path: root/kernel/task_work.c
diff options
context:
space:
mode:
authorDoug Ledford <dledford@redhat.com>2015-09-25 10:46:07 -0400
committerDoug Ledford <dledford@redhat.com>2015-09-25 10:46:07 -0400
commit310b7cec8ea32dcd4e9978423717ce78dd89d45d (patch)
treeed7de6ce3c25829d0e7de10d0db9b83c725ee327 /kernel/task_work.c
parente116a64fab650aed3d7b9b4db0b59c07f361bc9f (diff)
parent1f93e4a96c9109378204c147b3eec0d0e8100fde (diff)
Merge tag 'v4.3-rc2' into k.o/for-4.3-v1
Linux 4.3-rc2
Diffstat (limited to 'kernel/task_work.c')
-rw-r--r--kernel/task_work.c12
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);