Merge fourth patch-bomb from Andrew Morton: - sys_membarier syscall - seq_file interface changes - a few misc fixups * emailed patches from Andrew Morton <akpm@linux-foundation.org>: revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each" mm/early_ioremap: add explicit #include of asm/early_ioremap.h fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void selftests: enhance membarrier syscall test selftests: add membarrier syscall test sys_membarrier(): system-wide memory barrier (generic, x86) MODSIGN: fix a compilation warning in extract-cert
Showing the changes to include/uapi (3 of 22 files). Show all
Unified · Split
| @@ -709,9 +709,11 @@ __SYSCALL(__NR_memfd_create, sys_memfd_create) · 708 unmodified lines | ||
| 709 | 709 | __SYSCALL(__NR_bpf, sys_bpf) |
| 710 | 710 | #define __NR_execveat 281 |
| 711 | 711 | __SC_COMP(__NR_execveat, sys_execveat, compat_sys_execveat) |
| 712 | +#define __NR_membarrier 282 | |
| 713 | +__SYSCALL(__NR_membarrier, sys_membarrier) | |
| 712 | 714 | |
| 713 | 715 | #undef __NR_syscalls |
| 714 | −#define __NR_syscalls 282 | |
| 716 | +#define __NR_syscalls 283 | |
| 715 | 717 | |
| 716 | 718 | /* |
| 717 | 719 | * All syscalls below here should go away really, |
| @@ -252,6 +252,7 @@ header-y += mdio.h · 251 unmodified lines | ||
| 252 | 252 | header-y += media.h |
| 253 | 253 | header-y += media-bus-format.h |
| 254 | 254 | header-y += mei.h |
| 255 | +header-y += membarrier.h | |
| 255 | 256 | header-y += memfd.h |
| 256 | 257 | header-y += mempolicy.h |
| 257 | 258 | header-y += meye.h |
| @@ -0,0 +1,53 @@ | ||
| 1 | +#ifndef _UAPI_LINUX_MEMBARRIER_H | |
| 2 | +#define _UAPI_LINUX_MEMBARRIER_H | |
| 3 | + | |
| 4 | +/* | |
| 5 | + * linux/membarrier.h | |
| 6 | + * | |
| 7 | + * membarrier system call API | |
| 8 | + * | |
| 9 | + * Copyright (c) 2010, 2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
| 10 | + * | |
| 11 | + * Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 12 | + * of this software and associated documentation files (the "Software"), to deal | |
| 13 | + * in the Software without restriction, including without limitation the rights | |
| 14 | + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 15 | + * copies of the Software, and to permit persons to whom the Software is | |
| 16 | + * furnished to do so, subject to the following conditions: | |
| 17 | + * | |
| 18 | + * The above copyright notice and this permission notice shall be included in | |
| 19 | + * all copies or substantial portions of the Software. | |
| 20 | + * | |
| 21 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 22 | + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 23 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 24 | + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 25 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 26 | + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
| 27 | + * SOFTWARE. | |
| 28 | + */ | |
| 29 | + | |
| 30 | +/** | |
| 31 | + * enum membarrier_cmd - membarrier system call command | |
| 32 | + * @MEMBARRIER_CMD_QUERY: Query the set of supported commands. It returns | |
| 33 | + * a bitmask of valid commands. | |
| 34 | + * @MEMBARRIER_CMD_SHARED: Execute a memory barrier on all running threads. | |
| 35 | + * Upon return from system call, the caller thread | |
| 36 | + * is ensured that all running threads have passed | |
| 37 | + * through a state where all memory accesses to | |
| 38 | + * user-space addresses match program order between | |
| 39 | + * entry to and return from the system call | |
| 40 | + * (non-running threads are de facto in such a | |
| 41 | + * state). This covers threads from all processes | |
| 42 | + * running on the system. This command returns 0. | |
| 43 | + * | |
| 44 | + * Command to be passed to the membarrier system call. The commands need to | |
| 45 | + * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to | |
| 46 | + * the value 0. | |
| 47 | + */ | |
| 48 | +enum membarrier_cmd { | |
| 49 | + MEMBARRIER_CMD_QUERY = 0, | |
| 50 | + MEMBARRIER_CMD_SHARED = (1 << 0), | |
| 51 | +}; | |
| 52 | + | |
| 53 | +#endif /* _UAPI_LINUX_MEMBARRIER_H */ | |