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: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -60,6 +60,7 @@ void task_work_run(void)
|
||||
struct task_struct *task = current;
|
||||
struct callback_head *p, *q;
|
||||
|
||||
while (1) {
|
||||
raw_spin_lock_irq(&task->pi_lock);
|
||||
p = task->task_works;
|
||||
task->task_works = NULL;
|
||||
@@ -75,4 +76,5 @@ void task_work_run(void)
|
||||
q->func(q);
|
||||
q = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user