From: Stephen Rothwell Date: Fri, 30 Oct 2020 02:19:51 +0000 (+1100) Subject: Merge remote-tracking branch 'notifications/notifications-pipe-core' into master X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ed8e6299f0fe6357ab01d036e09ef6d4d49f2c77;p=users%2Fhch%2Fblock.git Merge remote-tracking branch 'notifications/notifications-pipe-core' into master --- ed8e6299f0fe6357ab01d036e09ef6d4d49f2c77 diff --cc arch/alpha/kernel/syscalls/syscall.tbl index ee7b01bb7346,b6cf8403da35..c5cc5bfa2062 --- a/arch/alpha/kernel/syscalls/syscall.tbl +++ b/arch/alpha/kernel/syscalls/syscall.tbl @@@ -479,4 -478,4 +479,5 @@@ 547 common openat2 sys_openat2 548 common pidfd_getfd sys_pidfd_getfd 549 common faccessat2 sys_faccessat2 -550 common watch_mount sys_watch_mount +550 common process_madvise sys_process_madvise ++551 common watch_mount sys_watch_mount diff --cc arch/arm/tools/syscall.tbl index d056a548358e,27cc1f53f4a0..47325b3b661a --- a/arch/arm/tools/syscall.tbl +++ b/arch/arm/tools/syscall.tbl @@@ -453,4 -452,4 +453,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/arm64/include/asm/unistd.h index b3b2019f8d16,b3b2019f8d16..86a9d7b3eabe --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@@ -38,7 -38,7 +38,7 @@@ #define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5) #define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800) --#define __NR_compat_syscalls 441 ++#define __NR_compat_syscalls 442 #endif #define __ARCH_WANT_SYS_CLONE diff --cc arch/arm64/include/asm/unistd32.h index 107f08e03b9f,4f9cf98cdf0f..6c1dcca067e0 --- a/arch/arm64/include/asm/unistd32.h +++ b/arch/arm64/include/asm/unistd32.h @@@ -887,8 -885,8 +887,10 @@@ __SYSCALL(__NR_openat2, sys_openat2 __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd) #define __NR_faccessat2 439 __SYSCALL(__NR_faccessat2, sys_faccessat2) -#define __NR_watch_mount 440 +#define __NR_process_madvise 440 +__SYSCALL(__NR_process_madvise, sys_process_madvise) ++#define __NR_watch_mount 441 + __SYSCALL(__NR_watch_mount, sys_watch_mount) /* * Please add new compat syscalls above this comment and update diff --cc arch/ia64/kernel/syscalls/syscall.tbl index b96ed8b8a508,fc6d87903781..033244462350 --- a/arch/ia64/kernel/syscalls/syscall.tbl +++ b/arch/ia64/kernel/syscalls/syscall.tbl @@@ -360,4 -359,4 +360,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/m68k/kernel/syscalls/syscall.tbl index 625fb6d32842,c671aa0e4d25..efd3ecb3cdfc --- a/arch/m68k/kernel/syscalls/syscall.tbl +++ b/arch/m68k/kernel/syscalls/syscall.tbl @@@ -439,4 -438,4 +439,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/microblaze/kernel/syscalls/syscall.tbl index aae729c95cf9,65cc53f129ef..67ae5a5e4d21 --- a/arch/microblaze/kernel/syscalls/syscall.tbl +++ b/arch/microblaze/kernel/syscalls/syscall.tbl @@@ -445,4 -444,4 +445,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/mips/kernel/syscalls/syscall_n32.tbl index 32817c954435,7f034a239930..c59bc6acc47a --- a/arch/mips/kernel/syscalls/syscall_n32.tbl +++ b/arch/mips/kernel/syscalls/syscall_n32.tbl @@@ -378,4 -377,4 +378,5 @@@ 437 n32 openat2 sys_openat2 438 n32 pidfd_getfd sys_pidfd_getfd 439 n32 faccessat2 sys_faccessat2 -440 n32 watch_mount sys_watch_mount +440 n32 process_madvise sys_process_madvise ++441 n32 watch_mount sys_watch_mount diff --cc arch/mips/kernel/syscalls/syscall_n64.tbl index 9e4ea3c31b1c,d39b90de3642..50bbb9517052 --- a/arch/mips/kernel/syscalls/syscall_n64.tbl +++ b/arch/mips/kernel/syscalls/syscall_n64.tbl @@@ -354,4 -353,4 +354,5 @@@ 437 n64 openat2 sys_openat2 438 n64 pidfd_getfd sys_pidfd_getfd 439 n64 faccessat2 sys_faccessat2 -440 n64 watch_mount sys_watch_mount +440 n64 process_madvise sys_process_madvise ++441 n64 watch_mount sys_watch_mount diff --cc arch/mips/kernel/syscalls/syscall_o32.tbl index 29f5f28cf5ce,09f426cb45b1..1d5644e221b4 --- a/arch/mips/kernel/syscalls/syscall_o32.tbl +++ b/arch/mips/kernel/syscalls/syscall_o32.tbl @@@ -427,4 -426,4 +427,5 @@@ 437 o32 openat2 sys_openat2 438 o32 pidfd_getfd sys_pidfd_getfd 439 o32 faccessat2 sys_faccessat2 -440 o32 watch_mount sys_watch_mount +440 o32 process_madvise sys_process_madvise ++441 o32 watch_mount sys_watch_mount diff --cc arch/parisc/kernel/syscalls/syscall.tbl index f375ea528e59,52ff3454baa1..4492cc2fce23 --- a/arch/parisc/kernel/syscalls/syscall.tbl +++ b/arch/parisc/kernel/syscalls/syscall.tbl @@@ -437,4 -436,4 +437,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/powerpc/kernel/syscalls/syscall.tbl index 1275daec7fec,10b7ed3c7a1b..ee122bfc2ddc --- a/arch/powerpc/kernel/syscalls/syscall.tbl +++ b/arch/powerpc/kernel/syscalls/syscall.tbl @@@ -529,4 -528,4 +529,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/s390/kernel/syscalls/syscall.tbl index 28c168000483,86f317bf52df..b467b57d66d1 --- a/arch/s390/kernel/syscalls/syscall.tbl +++ b/arch/s390/kernel/syscalls/syscall.tbl @@@ -442,4 -441,4 +442,5 @@@ 437 common openat2 sys_openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount sys_watch_mount diff --cc arch/sh/kernel/syscalls/syscall.tbl index 783738448ff5,0bb0f0b372c7..f9c7ca5cb969 --- a/arch/sh/kernel/syscalls/syscall.tbl +++ b/arch/sh/kernel/syscalls/syscall.tbl @@@ -442,4 -441,4 +442,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/sparc/kernel/syscalls/syscall.tbl index 78160260991b,369ab65c1e9a..341fd4ba053b --- a/arch/sparc/kernel/syscalls/syscall.tbl +++ b/arch/sparc/kernel/syscalls/syscall.tbl @@@ -485,4 -484,4 +485,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc arch/x86/entry/syscalls/syscall_32.tbl index 0d0667a9fbd7,e760ba92c58d..c52ab1c4a755 --- a/arch/x86/entry/syscalls/syscall_32.tbl +++ b/arch/x86/entry/syscalls/syscall_32.tbl @@@ -444,4 -443,4 +444,5 @@@ 437 i386 openat2 sys_openat2 438 i386 pidfd_getfd sys_pidfd_getfd 439 i386 faccessat2 sys_faccessat2 -440 i386 watch_mount sys_watch_mount +440 i386 process_madvise sys_process_madvise ++441 i386 watch_mount sys_watch_mount diff --cc arch/x86/entry/syscalls/syscall_64.tbl index 379819244b91,5b58621d4f75..f3270a9ef467 --- a/arch/x86/entry/syscalls/syscall_64.tbl +++ b/arch/x86/entry/syscalls/syscall_64.tbl @@@ -361,13 -360,13 +361,14 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount # -# x32-specific system call numbers start at 512 to avoid cache impact -# for native 64-bit operation. The __x32_compat_sys stubs are created -# on-the-fly for compat_sys_*() compatibility system calls if X86_X32 -# is defined. +# Due to a historical design error, certain syscalls are numbered differently +# in x32 as compared to native x86_64. These syscalls have numbers 512-547. +# Do not add new syscalls to this range. Numbers 548 and above are available +# for non-x32 use. # 512 x32 rt_sigaction compat_sys_rt_sigaction 513 x32 rt_sigreturn compat_sys_x32_rt_sigreturn diff --cc arch/xtensa/kernel/syscalls/syscall.tbl index b070f272995d,5b28ee39f70f..6225d87be81f --- a/arch/xtensa/kernel/syscalls/syscall.tbl +++ b/arch/xtensa/kernel/syscalls/syscall.tbl @@@ -410,4 -409,4 +410,5 @@@ 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 -440 common watch_mount sys_watch_mount +440 common process_madvise sys_process_madvise ++441 common watch_mount sys_watch_mount diff --cc fs/mount.h index ce6c376e0bc2,85456a5f5a3a..84d176c0b37f --- a/fs/mount.h +++ b/fs/mount.h @@@ -4,8 -4,10 +4,9 @@@ #include #include #include + #include struct mnt_namespace { - atomic_t count; struct ns_common ns; struct mount * root; /* diff --cc include/linux/watch_queue.h index c994d1b2cdba,38e04c7a7951..f1086d12cd03 --- a/include/linux/watch_queue.h +++ b/include/linux/watch_queue.h @@@ -120,14 -120,13 +120,19 @@@ static inline void remove_watch_list(st * watch_sizeof - Calculate the information part of the size of a watch record, * given the structure size. */ - #define watch_sizeof(STRUCT) (sizeof(STRUCT) << WATCH_INFO_LENGTH__SHIFT) + #define watch_sizeof(STRUCT) \ + ({ \ + size_t max = WATCH_INFO_LENGTH >> WATCH_INFO_LENGTH__SHIFT; \ + BUILD_BUG_ON(sizeof(STRUCT) > max); \ + sizeof(STRUCT) << WATCH_INFO_LENGTH__SHIFT; \ + }) +#else +static inline int watch_queue_init(struct pipe_inode_info *pipe) +{ + return -ENOPKG; +} + #endif #endif /* _LINUX_WATCH_QUEUE_H */ diff --cc include/uapi/asm-generic/unistd.h index 2056318988f7,fcdca8c7d30a..5df46517260e --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@@ -857,11 -857,11 +857,13 @@@ __SYSCALL(__NR_openat2, sys_openat2 __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd) #define __NR_faccessat2 439 __SYSCALL(__NR_faccessat2, sys_faccessat2) -#define __NR_watch_mount 440 +#define __NR_process_madvise 440 +__SYSCALL(__NR_process_madvise, sys_process_madvise) ++#define __NR_watch_mount 441 + __SYSCALL(__NR_watch_mount, sys_watch_mount) #undef __NR_syscalls --#define __NR_syscalls 441 ++#define __NR_syscalls 442 /* * 32 bit systems traditionally used different