]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
task_work: s/task_work_cancel()/task_work_cancel_func()/
authorFrederic Weisbecker <frederic@kernel.org>
Fri, 21 Jun 2024 09:15:58 +0000 (11:15 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 9 Jul 2024 11:26:31 +0000 (13:26 +0200)
A proper task_work_cancel() API that actually cancels a callback and not
*any* callback pointing to a given function is going to be needed for
perf events event freeing. Do the appropriate rename to prepare for
that.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240621091601.18227-2-frederic@kernel.org
include/linux/task_work.h
kernel/irq/manage.c
kernel/task_work.c
security/keys/keyctl.c

index 795ef5a6842946fcf22d96e6e8e6100a64c7afd8..23ab01ae185e504cfc0a70a71d980624855bd0cf 100644 (file)
@@ -30,7 +30,7 @@ int task_work_add(struct task_struct *task, struct callback_head *twork,
 
 struct callback_head *task_work_cancel_match(struct task_struct *task,
        bool (*match)(struct callback_head *, void *data), void *data);
-struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);
+struct callback_head *task_work_cancel_func(struct task_struct *, task_work_func_t);
 void task_work_run(void);
 
 static inline void exit_task_work(struct task_struct *task)
index 71b0fc2d0aeaa9d01980c6c628681e743ceb651d..dd53298ef1a5c3f7126b1916193bd027029df88b 100644 (file)
@@ -1337,7 +1337,7 @@ static int irq_thread(void *data)
         * synchronize_hardirq(). So neither IRQTF_RUNTHREAD nor the
         * oneshot mask bit can be set.
         */
-       task_work_cancel(current, irq_thread_dtor);
+       task_work_cancel_func(current, irq_thread_dtor);
        return 0;
 }
 
index 95a7e1b7f1dab2d3e5eef4b16e2cefe7f25f2f22..54ac24059daaff2a5d05c3230b2544d777e948f9 100644 (file)
@@ -120,9 +120,9 @@ static bool task_work_func_match(struct callback_head *cb, void *data)
 }
 
 /**
- * task_work_cancel - cancel a pending work added by task_work_add()
- * @task: the task which should execute the work
- * @func: identifies the work to remove
+ * task_work_cancel_func - cancel a pending work matching a function added by task_work_add()
+ * @task: the task which should execute the func's work
+ * @func: identifies the func to match with a work to remove
  *
  * Find the last queued pending work with ->func == @func and remove
  * it from queue.
@@ -131,7 +131,7 @@ static bool task_work_func_match(struct callback_head *cb, void *data)
  * The found work or NULL if not found.
  */
 struct callback_head *
-task_work_cancel(struct task_struct *task, task_work_func_t func)
+task_work_cancel_func(struct task_struct *task, task_work_func_t func)
 {
        return task_work_cancel_match(task, task_work_func_match, func);
 }
@@ -168,7 +168,7 @@ void task_work_run(void)
                if (!work)
                        break;
                /*
-                * Synchronize with task_work_cancel(). It can not remove
+                * Synchronize with task_work_cancel_match(). It can not remove
                 * the first entry == work, cmpxchg(task_works) must fail.
                 * But it can remove another entry from the ->next list.
                 */
index 4bc3e9398ee3d9c6b35e5fce5a3aad5365197fe5..ab927a142f515f74d2c4ec77ac10360aa99ce30d 100644 (file)
@@ -1694,7 +1694,7 @@ long keyctl_session_to_parent(void)
                goto unlock;
 
        /* cancel an already pending keyring replacement */
-       oldwork = task_work_cancel(parent, key_change_session_keyring);
+       oldwork = task_work_cancel_func(parent, key_change_session_keyring);
 
        /* the replacement session keyring is applied just prior to userspace
         * restarting */