peterz@infradead.org
0f4b5f9722
futex: Add sys_futex_requeue()
...
Finish off the 'simple' futex2 syscall group by adding
sys_futex_requeue(). Unlike sys_futex_{wait,wake}() its arguments are
too numerous to fit into a regular syscall. As such, use struct
futex_waitv to pass the 'source' and 'destination' futexes to the
syscall.
This syscall implements what was previously known as FUTEX_CMP_REQUEUE
and uses {val, uaddr, flags} for source and {uaddr, flags} for
destination.
This design explicitly allows requeueing between different types of
futex by having a different flags word per uaddr.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/r/20230921105248.511860556@noisy.programming.kicks-ass.net
2023-09-21 19:22:10 +02:00
..
2023-09-21 19:22:10 +02:00
2020-03-25 11:50:48 +01:00
2021-04-07 16:11:05 +02:00
2023-06-09 10:18:42 +02:00
2018-11-08 11:20:57 -08:00
2016-05-09 12:00:01 +02:00
2020-09-21 22:14:24 +02:00
2021-09-01 10:29:10 +02:00
2020-03-05 16:47:35 +01:00
2020-03-05 16:47:35 +01:00
2020-03-05 16:47:35 +01:00
2023-02-27 23:45:17 +01:00
2020-03-05 16:47:35 +01:00
2020-12-28 22:32:28 +01:00
2022-05-04 22:22:59 +02:00
2020-05-22 09:12:52 +02:00
2023-04-05 09:45:08 +02:00
2023-07-03 16:05:51 +02:00
2022-03-01 10:07:22 +01:00
2022-04-29 14:37:59 -07:00
2018-10-31 08:54:16 -07:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:37 -07:00
2020-05-22 09:14:06 +02:00
2019-05-30 11:26:37 -07:00
2019-05-21 11:28:39 +02:00
2018-07-17 09:40:17 -07:00
2022-02-23 13:08:30 +01:00
2022-03-01 10:07:22 +01:00
2020-10-12 12:04:50 +02:00
2020-10-12 12:04:50 +02:00
2021-04-06 14:36:56 +02:00
2023-01-26 12:41:16 +09:00
2019-06-19 17:09:55 +02:00
2021-02-04 13:34:51 +01:00
2020-03-05 16:47:35 +01:00
2023-01-13 11:48:18 +01:00
2022-03-01 10:07:22 +01:00
2019-05-21 11:28:39 +02:00
2019-05-30 11:26:32 -07:00
2022-03-14 15:02:53 +01:00
2022-11-11 15:46:03 +01:00
2021-02-15 12:23:54 +01:00
2022-05-12 18:00:51 +02:00
2018-08-01 13:20:27 -07:00
2019-06-19 17:09:06 +02:00
2023-04-12 15:01:09 +02:00
2023-08-15 10:22:23 +02:00
2023-04-05 09:45:08 +02:00
2022-04-26 15:11:25 +02:00
2021-08-05 10:57:01 +02:00
2023-03-17 15:16:33 +01:00
2022-01-27 09:04:19 +01:00
2022-06-24 09:48:55 +02:00
2023-08-15 10:22:23 +02:00
2022-05-04 22:22:59 +02:00
2019-06-19 17:09:55 +02:00
2021-02-04 21:55:45 +01:00
2019-10-07 09:42:17 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2022-07-14 11:49:40 +02:00
2023-08-18 10:19:00 -07:00
2022-09-12 15:34:04 +02:00
2020-06-09 09:39:13 -07:00
2022-11-15 14:30:40 -08:00
2023-08-15 10:22:23 +02:00
2018-06-14 12:21:18 +09:00
2022-02-22 09:35:49 +01:00
2023-08-15 10:22:23 +02:00
2023-08-15 10:22:23 +02:00
2022-11-11 15:44:44 +01:00
2022-09-12 15:34:04 +02:00
2022-05-19 19:30:31 +02:00
2020-03-05 16:47:35 +01:00
2018-02-11 14:34:03 -08:00
2022-02-22 09:35:49 +01:00
2022-01-27 09:04:19 +01:00
2022-02-22 09:35:49 +01:00
2022-01-27 09:04:19 +01:00
2022-09-19 16:40:17 +02:00
2023-06-26 13:39:10 -07:00
2019-01-03 18:57:57 -08:00
2022-02-22 09:35:49 +01:00
2019-05-27 09:36:28 -05:00
2015-09-03 12:07:59 +02:00
2022-03-28 17:29:53 -07:00
2023-05-15 13:44:58 +02:00
2023-06-29 15:01:51 -07:00
2023-06-09 10:34:14 +02:00
2017-08-30 00:57:27 +02:00
2023-06-29 15:01:51 -07:00
2021-03-14 14:09:49 +01:00
2020-05-22 09:12:22 +02:00
2019-05-21 10:50:45 +02:00
2020-01-22 10:16:18 -08:00
2022-01-27 09:04:19 +01:00
2023-07-25 19:21:03 +02:00
2022-04-29 15:52:00 +02:00
2022-03-22 15:57:10 -07:00
2022-03-07 13:09:28 +01:00
2023-06-09 09:54:17 +02:00
2023-04-24 13:31:44 +02:00
2022-11-18 02:15:15 +01:00
2023-04-21 23:59:43 +02:00
2023-03-17 15:16:27 +01:00
2023-04-27 17:46:52 -07:00
2020-05-07 11:55:47 +02:00