summaryrefslogtreecommitdiff
path: root/kernel/task_work.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2022-02-09 08:52:41 -0600
committerEric W. Biederman <ebiederm@xmission.com>2022-03-10 13:39:04 -0600
commit7f62d40d9cb50fd146fe8ff071f98fa3c1855083 (patch)
treefee0257d2a48d176bdfeb84267f3a6d9b1122e0e /kernel/task_work.c
parent8ca07e17c9dd4c4afcb4a3f2ea8f0a0d41c0f982 (diff)
task_work: Introduce task_work_pending
Wrap the test of task->task_works in a helper function to make it clear what is being tested. All of the other readers of task->task_work use READ_ONCE and this is even necessary on current as other processes can update task->task_work. So for consistency I have added READ_ONCE into task_work_pending. Reviewed-by: Kees Cook <keescook@chromium.org> Link: https://lkml.kernel.org/r/20220309162454.123006-7-ebiederm@xmission.com Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'kernel/task_work.c')
-rw-r--r--kernel/task_work.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/task_work.c b/kernel/task_work.c
index 1698fbe6f0e1..cc6fccb0e24d 100644
--- a/kernel/task_work.c
+++ b/kernel/task_work.c
@@ -78,7 +78,7 @@ task_work_cancel_match(struct task_struct *task,
struct callback_head *work;
unsigned long flags;
- if (likely(!task->task_works))
+ if (likely(!task_work_pending(task)))
return NULL;
/*
* If cmpxchg() fails we continue without updating pprev.