Commit a2d4c71d authored by Al Viro's avatar Al Viro

deal with task_work callbacks adding more work

It doesn't matter on normal return to userland path (we'll recheck the
NOTIFY_RESUME flag anyway), but in case of exit_task_work() we'll
need that as soon as we get callbacks capable of triggering more
task_work_add().
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ed3e694d
...@@ -60,6 +60,7 @@ void task_work_run(void) ...@@ -60,6 +60,7 @@ void task_work_run(void)
struct task_struct *task = current; struct task_struct *task = current;
struct callback_head *p, *q; struct callback_head *p, *q;
while (1) {
raw_spin_lock_irq(&task->pi_lock); raw_spin_lock_irq(&task->pi_lock);
p = task->task_works; p = task->task_works;
task->task_works = NULL; task->task_works = NULL;
...@@ -75,4 +76,5 @@ void task_work_run(void) ...@@ -75,4 +76,5 @@ void task_work_run(void)
q->func(q); q->func(q);
q = p; q = p;
} }
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment