Jens Axboe
5e0e02f0d7
futex: Pass in task to futex_queue()
...
futex_queue() -> __futex_queue() uses 'current' as the task to store in
the struct futex_q->task field. This is fine for synchronous usage of
the futex infrastructure, but it's not always correct when used by
io_uring where the task doing the initial futex_queue() might not be
available later on. This doesn't lead to any issues currently, as the
io_uring side doesn't support PI futexes, but it does leave a
potentially dangling pointer which is never a good idea.
Have futex_queue() take a task_struct argument, and have the regular
callers pass in 'current' for that. Meanwhile io_uring can just pass in
NULL, as the task should never be used off that path. In theory
req->tctx->task could be used here, but there's no point populating it
with a task field that will never be used anyway.
Reported-by: Jann Horn <jannh@google.com >
Signed-off-by: Jens Axboe <axboe@kernel.dk >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Link: https://lore.kernel.org/all/22484a23-542c-4003-b721-400688a0d055@kernel.dk
2025-01-24 09:37:30 +01:00
..
2025-01-23 08:04:07 -08:00
2025-01-21 16:09:47 -08:00
2024-10-28 10:21:09 -07:00
2024-11-18 15:20:22 +00:00
2024-11-28 10:19:16 +01:00
2024-11-05 12:55:37 +01:00
2025-01-21 10:52:03 -08:00
2025-01-24 09:37:30 +01:00
2024-06-15 10:43:06 -07:00
2025-01-21 13:51:07 -08:00
2024-10-14 16:44:56 +02:00
2024-12-09 11:44:03 +01:00
2025-01-21 14:39:21 -08:00
2024-12-02 11:34:44 -08:00
2025-01-20 19:14:15 +01:00
2025-01-20 13:40:52 +01:00
2025-01-21 17:10:05 -08:00
2025-01-23 18:49:43 -08:00
2025-01-21 13:16:00 -08:00
2025-01-23 18:02:55 -08:00
2024-12-02 11:25:13 +01:00
2024-02-09 11:13:59 -10:00
2024-04-04 16:24:16 +02:00
2024-04-04 16:24:16 +02:00
2024-12-04 14:42:31 -05:00
2024-10-11 14:34:16 -04:00
2024-12-05 19:22:38 -05:00
2025-01-21 20:03:04 -08:00
2024-06-24 22:24:55 -07:00
2024-04-29 08:29:29 -07:00
2023-08-08 16:48:47 -04:00
2024-08-15 21:30:43 +05:30
2025-01-16 13:06:14 +01:00
2024-11-05 17:12:27 -08:00
2024-09-01 20:43:30 -07:00
2024-12-02 11:25:09 +01:00
2024-07-24 20:59:29 +02:00
2024-02-23 17:48:22 -08:00
2024-10-07 13:34:41 -04:00
2023-09-21 12:03:50 -06:00
2025-01-23 13:36:06 -08:00
2024-10-14 09:14:35 +02:00
2024-12-20 22:07:55 +01:00
2023-09-29 11:28:39 -07:00
2024-11-11 17:17:03 -08:00
2023-08-21 13:37:28 -07:00
2024-09-10 11:57:27 +02:00
2024-07-20 16:33:21 +09:00
2025-01-02 22:12:12 +01:00
2024-08-15 09:33:35 -07:00
2024-10-07 13:34:41 -04:00
2024-11-14 22:43:48 -08:00
2024-11-07 15:25:05 +01:00
2024-12-30 17:59:08 -08:00
2024-07-24 20:59:29 +02:00
2024-09-01 17:59:01 -07:00
2024-09-01 20:43:23 -07:00
2024-04-23 14:59:01 +10:00
2025-01-10 09:00:13 +09:00
2023-06-08 12:27:20 -07:00
2024-07-29 10:45:54 -07:00
2025-01-21 17:10:05 -08:00
2024-07-24 20:59:29 +02:00
2024-09-03 21:15:26 -07:00
2024-11-05 17:12:31 -08:00
2024-11-03 01:28:06 -05:00
2024-11-10 11:50:54 +08:00
2024-09-19 10:18:15 +02:00
2023-12-01 09:51:44 -08:00
2024-12-02 11:25:25 +01:00
2024-07-24 20:59:29 +02:00
2025-01-20 10:29:11 -08:00
2024-08-04 13:36:28 -07:00
2024-02-22 15:38:52 -08:00
2024-11-11 17:17:05 -08:00
2024-04-25 21:07:03 -07:00
2024-09-27 08:18:43 -07:00
2024-10-09 12:47:19 -07:00
2024-12-02 11:34:44 -08:00
2025-01-21 08:10:51 +01:00
2024-11-14 16:09:51 -08:00
2024-07-24 20:59:29 +02:00
2025-01-15 18:08:01 +01:00
2024-12-05 14:25:28 +01:00
2023-10-04 10:41:57 -07:00
2024-12-02 12:01:27 +01:00
2024-12-22 20:28:11 -08:00
2023-12-29 12:22:29 -08:00
2024-12-13 09:28:32 +01:00
2024-08-15 21:30:42 +05:30
2024-07-18 12:19:20 -07:00
2024-12-22 20:28:11 -08:00
2024-06-03 15:20:37 +02:00
2024-12-02 11:25:25 +01:00
2024-10-11 10:49:32 +02:00
2024-11-03 01:28:06 -05:00
2024-05-30 15:31:38 -07:00
2024-11-01 14:37:31 -04:00
2024-07-12 16:39:53 -07:00
2024-11-22 20:36:11 -08:00
2024-10-07 13:34:41 -04:00
2023-09-13 14:59:24 +02:00
2024-09-09 16:47:42 -07:00
2024-09-12 12:16:09 +02:00
2024-07-24 20:59:29 +02:00
2024-05-22 08:31:15 -04:00
2024-09-03 21:15:43 -07:00
2024-12-22 11:29:51 +01:00
2023-06-19 16:25:28 -07:00
2024-07-17 21:11:34 -07:00
2024-11-25 16:09:48 -08:00
2023-08-07 15:57:22 -10:00
2025-01-21 17:10:05 -08:00