]> git.itanic.dy.fi Git - linux-stable/commitdiff
futex: add wake_data to struct futex_q
authorJens Axboe <axboe@kernel.dk>
Tue, 13 Jun 2023 21:44:42 +0000 (15:44 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 29 Sep 2023 08:37:01 +0000 (02:37 -0600)
With handling multiple futex_q for waitv, we cannot easily go from the
futex_q to data related to that request or queue. Add a wake_data
argument that belongs to the wake handler assigned.

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
kernel/futex/futex.h

index 33835b81e0c39f3b9147744f4e2008fc3ce6145c..76f6c2e0f539e381383b96f88ac2cf136f647110 100644 (file)
@@ -148,6 +148,7 @@ typedef void (futex_wake_fn)(struct wake_q_head *wake_q, struct futex_q *q);
  * @task:              the task waiting on the futex
  * @lock_ptr:          the hash bucket lock
  * @wake:              the wake handler for this queue
+ * @wake_data:         data associated with the wake handler
  * @key:               the key the futex is hashed on
  * @pi_state:          optional priority inheritance state
  * @rt_waiter:         rt_waiter storage for use with requeue_pi
@@ -173,6 +174,7 @@ struct futex_q {
        struct task_struct *task;
        spinlock_t *lock_ptr;
        futex_wake_fn *wake;
+       void *wake_data;
        union futex_key key;
        struct futex_pi_state *pi_state;
        struct rt_mutex_waiter *rt_waiter;