Pull in locking/core from the tip tree, to get the futex2 dependencies from Peter Zijlstra. * 'locking/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits) locking/ww_mutex/test: Make sure we bail out instead of livelock locking/ww_mutex/test: Fix potential workqueue corruption locking/ww_mutex/test: Use prng instead of rng to avoid hangs at bootup futex: Add sys_futex_requeue() futex: Add flags2 argument to futex_requeue() futex: Propagate flags into get_futex_key() futex: Add sys_futex_wait() futex: FLAGS_STRICT futex: Add sys_futex_wake() futex: Validate futex value against futex size futex: Flag conversion futex: Extend the FUTEX2 flags futex: Clarify FUTEX2 flags asm-generic: ticket-lock: Optimize arch_spin_value_unlocked() futex/pi: Fix recursive rt_mutex waiter state locking/rtmutex: Add a lockdep assert to catch potential nested blocking locking/rtmutex: Use rt_mutex specific scheduler helpers sched: Provide rt_mutex specific scheduler helpers sched: Extract __schedule_loop() locking/rtmutex: Avoid unconditional slowpath for DEBUG_RT_MUTEXES ...
Showing the changes to include/uapi (2 of 40 files). Show all
Unified · Split
| @@ -822,9 +822,15 @@ __SYSCALL(__NR_cachestat, sys_cachestat) · 821 unmodified lines | |||
| 822 | 822 | ||
| 823 | #define __NR_fchmodat2 452 | 823 | #define __NR_fchmodat2 452 |
| 824 | __SYSCALL(__NR_fchmodat2, sys_fchmodat2) | 824 | __SYSCALL(__NR_fchmodat2, sys_fchmodat2) |
| 825 | #define __NR_futex_wake 454 | ||
| 826 | __SYSCALL(__NR_futex_wake, sys_futex_wake) | ||
| 827 | #define __NR_futex_wait 455 | ||
| 828 | __SYSCALL(__NR_futex_wait, sys_futex_wait) | ||
| 829 | #define __NR_futex_requeue 456 | ||
| 830 | __SYSCALL(__NR_futex_requeue, sys_futex_requeue) | ||
| 825 | 831 | ||
| 826 | #undef __NR_syscalls | 832 | #undef __NR_syscalls |
| 827 | #define __NR_syscalls 453 | 833 | #define __NR_syscalls 457 |
| 828 | 834 | ||
| 829 | /* | 835 | /* |
| 830 | * 32 bit systems traditionally used different | 836 | * 32 bit systems traditionally used different |
| @@ -44,10 +44,35 @@ · 43 unmodified lines | |||
| 44 | FUTEX_PRIVATE_FLAG) | 44 | FUTEX_PRIVATE_FLAG) |
| 45 | 45 | ||
| 46 | /* | 46 | /* |
| 47 | * Flags to specify the bit length of the futex word for futex2 syscalls. | 47 | * Flags for futex2 syscalls. |
| 48 | * Currently, only 32 is supported. | 48 | * |
| 49 | * NOTE: these are not pure flags, they can also be seen as: | ||
| 50 | * | ||
| 51 | * union { | ||
| 52 | * u32 flags; | ||
| 53 | * struct { | ||
| 54 | * u32 size : 2, | ||
| 55 | * numa : 1, | ||
| 56 | * : 4, | ||
| 57 | * private : 1; | ||
| 58 | * }; | ||
| 59 | * }; | ||
| 49 | */ | 60 | */ |
| 50 | #define FUTEX_32 2 | 61 | #define FUTEX2_SIZE_U8 0x00 |
| 62 | #define FUTEX2_SIZE_U16 0x01 | ||
| 63 | #define FUTEX2_SIZE_U32 0x02 | ||
| 64 | #define FUTEX2_SIZE_U64 0x03 | ||
| 65 | #define FUTEX2_NUMA 0x04 | ||
| 66 | /* 0x08 */ | ||
| 67 | /* 0x10 */ | ||
| 68 | /* 0x20 */ | ||
| 69 | /* 0x40 */ | ||
| 70 | #define FUTEX2_PRIVATE FUTEX_PRIVATE_FLAG | ||
| 71 | |||
| 72 | #define FUTEX2_SIZE_MASK 0x03 | ||
| 73 | |||
| 74 | /* do not use */ | ||
| 75 | #define FUTEX_32 FUTEX2_SIZE_U32 /* historical accident :-( */ | ||
| 51 | 76 | ||
| 52 | /* | 77 | /* |
| 53 | * Max numbers of elements in a futex_waitv array | 78 | * Max numbers of elements in a futex_waitv array |