Message ID | 20170604120009.342-4-ynorov@caviumnetworks.com |
---|---|
State | Superseded |
Headers | show |
Series | [01/20] compat ABI: use non-compat openat and open_by_handle_at variants | expand |
Hi Yury, On Sun, Jun 04, 2017 at 02:59:52PM +0300, Yury Norov wrote: > The newer prlimit64 syscall provides all the functionality provided by > the getrlimit and setrlimit syscalls and adds the pid of target process, > so future architectures won't need to include getrlimit and setrlimit. > > Therefore drop getrlimit and setrlimit syscalls from the generic syscall > list unless __ARCH_WANT_SET_GET_RLIMIT is defined by the architecture's > unistd.h prior to including asm-generic/unistd.h, and adjust all architectures > using the generic syscall list to define it so that no in-tree architectures > are affected. > > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: James Hogan <james.hogan@imgtec.com> > Cc: linux-arch@vger.kernel.org > Cc: linux-snps-arc@lists.infradead.org > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will.deacon@arm.com> > Cc: linux-arm-kernel@lists.infradead.org > Cc: Mark Salter <msalter@redhat.com> > Cc: Aurelien Jacquiot <a-jacquiot@ti.com> > Cc: linux-c6x-dev@linux-c6x.org > Cc: Richard Kuo <rkuo@codeaurora.org> > Cc: linux-hexagon@vger.kernel.org > Cc: linux-metag@vger.kernel.org > Cc: Jonas Bonn <jonas@southpole.se> > Cc: linux@lists.openrisc.net > Cc: Chen Liqin <liqin.linux@gmail.com> > Cc: Lennox Wu <lennox.wu@gmail.com> > Cc: Chris Metcalf <cmetcalf@mellanox.com> > Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> > Cc: Ley Foon Tan <lftan@altera.com> > Cc: nios2-dev@lists.rocketboards.org > Cc: Yoshinori Sato <ysato@users.sourceforge.jp> > Cc: uclinux-h8-devel@lists.sourceforge.jp > Signed-off-by: Yury Norov <ynorov@caviumnetworks.com> > Acked-by: Arnd Bergmann <arnd@arndb.de> > Acked-by: Mark Salter <msalter@redhat.com> [c6x] > Acked-by: James Hogan <james.hogan@imgtec.com> [metag] > Acked-by: Ley Foon Tan <lftan@altera.com> [nios2] > Acked-by: Stafford Horne <shorne@gmail.com> [openrisc] > Acked-by: Will Deacon <will.deacon@arm.com> [arm64] > Acked-by: Vineet Gupta <vgupta@synopsys.com> #arch/arc bits > --- > arch/arc/include/uapi/asm/unistd.h | 1 + > arch/arm64/include/uapi/asm/unistd.h | 1 + > arch/c6x/include/uapi/asm/unistd.h | 1 + > arch/h8300/include/uapi/asm/unistd.h | 1 + > arch/hexagon/include/uapi/asm/unistd.h | 1 + > arch/metag/include/uapi/asm/unistd.h | 1 + > arch/nios2/include/uapi/asm/unistd.h | 1 + > arch/openrisc/include/uapi/asm/unistd.h | 1 + > arch/score/include/uapi/asm/unistd.h | 1 + > arch/tile/include/uapi/asm/unistd.h | 1 + > arch/unicore32/include/uapi/asm/unistd.h | 1 + > include/uapi/asm-generic/unistd.h | 5 +++++ Don't forget to add __IGNORE_getrlimit and __IGNORE_setrlimit to scripts/checksyscalls.sh, or you'll get warnings about missing syscalls. Cheers James
On Mon, Jun 05, 2017 at 03:44:06PM +0100, James Hogan wrote: > Hi Yury, > > On Sun, Jun 04, 2017 at 02:59:52PM +0300, Yury Norov wrote: > > The newer prlimit64 syscall provides all the functionality provided by > > the getrlimit and setrlimit syscalls and adds the pid of target process, > > so future architectures won't need to include getrlimit and setrlimit. > > > > Therefore drop getrlimit and setrlimit syscalls from the generic syscall > > list unless __ARCH_WANT_SET_GET_RLIMIT is defined by the architecture's > > unistd.h prior to including asm-generic/unistd.h, and adjust all architectures > > using the generic syscall list to define it so that no in-tree architectures > > are affected. > > > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: James Hogan <james.hogan@imgtec.com> > > Cc: linux-arch@vger.kernel.org > > Cc: linux-snps-arc@lists.infradead.org > > Cc: Catalin Marinas <catalin.marinas@arm.com> > > Cc: Will Deacon <will.deacon@arm.com> > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: Mark Salter <msalter@redhat.com> > > Cc: Aurelien Jacquiot <a-jacquiot@ti.com> > > Cc: linux-c6x-dev@linux-c6x.org > > Cc: Richard Kuo <rkuo@codeaurora.org> > > Cc: linux-hexagon@vger.kernel.org > > Cc: linux-metag@vger.kernel.org > > Cc: Jonas Bonn <jonas@southpole.se> > > Cc: linux@lists.openrisc.net > > Cc: Chen Liqin <liqin.linux@gmail.com> > > Cc: Lennox Wu <lennox.wu@gmail.com> > > Cc: Chris Metcalf <cmetcalf@mellanox.com> > > Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> > > Cc: Ley Foon Tan <lftan@altera.com> > > Cc: nios2-dev@lists.rocketboards.org > > Cc: Yoshinori Sato <ysato@users.sourceforge.jp> > > Cc: uclinux-h8-devel@lists.sourceforge.jp > > Signed-off-by: Yury Norov <ynorov@caviumnetworks.com> > > Acked-by: Arnd Bergmann <arnd@arndb.de> > > Acked-by: Mark Salter <msalter@redhat.com> [c6x] > > Acked-by: James Hogan <james.hogan@imgtec.com> [metag] > > Acked-by: Ley Foon Tan <lftan@altera.com> [nios2] > > Acked-by: Stafford Horne <shorne@gmail.com> [openrisc] > > Acked-by: Will Deacon <will.deacon@arm.com> [arm64] > > Acked-by: Vineet Gupta <vgupta@synopsys.com> #arch/arc bits > > --- > > arch/arc/include/uapi/asm/unistd.h | 1 + > > arch/arm64/include/uapi/asm/unistd.h | 1 + > > arch/c6x/include/uapi/asm/unistd.h | 1 + > > arch/h8300/include/uapi/asm/unistd.h | 1 + > > arch/hexagon/include/uapi/asm/unistd.h | 1 + > > arch/metag/include/uapi/asm/unistd.h | 1 + > > arch/nios2/include/uapi/asm/unistd.h | 1 + > > arch/openrisc/include/uapi/asm/unistd.h | 1 + > > arch/score/include/uapi/asm/unistd.h | 1 + > > arch/tile/include/uapi/asm/unistd.h | 1 + > > arch/unicore32/include/uapi/asm/unistd.h | 1 + > > include/uapi/asm-generic/unistd.h | 5 +++++ > > Don't forget to add __IGNORE_getrlimit and __IGNORE_setrlimit to > scripts/checksyscalls.sh, or you'll get warnings about missing syscalls. > > Cheers > James Hi James, Thanks for the hint. Yury
diff --git a/arch/arc/include/uapi/asm/unistd.h b/arch/arc/include/uapi/asm/unistd.h index 9a34136d84b2..ac6496527ad6 100644 --- a/arch/arc/include/uapi/asm/unistd.h +++ b/arch/arc/include/uapi/asm/unistd.h @@ -16,6 +16,7 @@ #define _UAPI_ASM_ARC_UNISTD_H #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_VFORK diff --git a/arch/arm64/include/uapi/asm/unistd.h b/arch/arm64/include/uapi/asm/unistd.h index 043d17a21342..48355a683e25 100644 --- a/arch/arm64/include/uapi/asm/unistd.h +++ b/arch/arm64/include/uapi/asm/unistd.h @@ -15,5 +15,6 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #include <asm-generic/unistd.h> diff --git a/arch/c6x/include/uapi/asm/unistd.h b/arch/c6x/include/uapi/asm/unistd.h index 12d73d9d81f5..f67623137853 100644 --- a/arch/c6x/include/uapi/asm/unistd.h +++ b/arch/c6x/include/uapi/asm/unistd.h @@ -15,6 +15,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_CLONE /* Use the standard ABI for syscalls. */ diff --git a/arch/h8300/include/uapi/asm/unistd.h b/arch/h8300/include/uapi/asm/unistd.h index 7dd20ef7625a..2f98394b77d4 100644 --- a/arch/h8300/include/uapi/asm/unistd.h +++ b/arch/h8300/include/uapi/asm/unistd.h @@ -1,5 +1,6 @@ #define __ARCH_NOMMU #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #include <asm-generic/unistd.h> diff --git a/arch/hexagon/include/uapi/asm/unistd.h b/arch/hexagon/include/uapi/asm/unistd.h index 21517600432b..52d585c5cdb2 100644 --- a/arch/hexagon/include/uapi/asm/unistd.h +++ b/arch/hexagon/include/uapi/asm/unistd.h @@ -28,6 +28,7 @@ #define sys_mmap2 sys_mmap_pgoff #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_VFORK diff --git a/arch/metag/include/uapi/asm/unistd.h b/arch/metag/include/uapi/asm/unistd.h index 459b6ec15848..16b5cb32ec21 100644 --- a/arch/metag/include/uapi/asm/unistd.h +++ b/arch/metag/include/uapi/asm/unistd.h @@ -8,6 +8,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT /* Use the standard ABI for syscalls. */ #include <asm-generic/unistd.h> diff --git a/arch/nios2/include/uapi/asm/unistd.h b/arch/nios2/include/uapi/asm/unistd.h index 51a32c71ce2b..b0dda4de2bc7 100644 --- a/arch/nios2/include/uapi/asm/unistd.h +++ b/arch/nios2/include/uapi/asm/unistd.h @@ -18,6 +18,7 @@ #define sys_mmap2 sys_mmap_pgoff #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT /* Use the standard ABI for syscalls */ #include <asm-generic/unistd.h> diff --git a/arch/openrisc/include/uapi/asm/unistd.h b/arch/openrisc/include/uapi/asm/unistd.h index 471905bd7745..6812d81b3c6c 100644 --- a/arch/openrisc/include/uapi/asm/unistd.h +++ b/arch/openrisc/include/uapi/asm/unistd.h @@ -21,6 +21,7 @@ #define sys_mmap2 sys_mmap_pgoff #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_CLONE diff --git a/arch/score/include/uapi/asm/unistd.h b/arch/score/include/uapi/asm/unistd.h index d4008c339e89..7ad1bdcb8615 100644 --- a/arch/score/include/uapi/asm/unistd.h +++ b/arch/score/include/uapi/asm/unistd.h @@ -1,6 +1,7 @@ #define __ARCH_HAVE_MMU #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_SYSCALL_NO_AT #define __ARCH_WANT_SYSCALL_NO_FLAGS #define __ARCH_WANT_SYSCALL_OFF_T diff --git a/arch/tile/include/uapi/asm/unistd.h b/arch/tile/include/uapi/asm/unistd.h index 24e9187e85a8..cf0505fe4b9c 100644 --- a/arch/tile/include/uapi/asm/unistd.h +++ b/arch/tile/include/uapi/asm/unistd.h @@ -13,6 +13,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #if !defined(__LP64__) || defined(__SYSCALL_COMPAT) /* Use the flavor of this syscall that matches the 32-bit API better. */ #define __ARCH_WANT_SYNC_FILE_RANGE2 diff --git a/arch/unicore32/include/uapi/asm/unistd.h b/arch/unicore32/include/uapi/asm/unistd.h index 9cf71c7bedb1..76ece524ab70 100644 --- a/arch/unicore32/include/uapi/asm/unistd.h +++ b/arch/unicore32/include/uapi/asm/unistd.h @@ -11,6 +11,7 @@ */ #define __ARCH_WANT_RENAMEAT +#define __ARCH_WANT_SET_GET_RLIMIT #ifndef CONFIG_UNICORE32_OLDABI diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 429dd335def6..ef90d53ac9b6 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -464,10 +464,15 @@ __SYSCALL(__NR_uname, sys_newuname) __SYSCALL(__NR_sethostname, sys_sethostname) #define __NR_setdomainname 162 __SYSCALL(__NR_setdomainname, sys_setdomainname) + +#ifdef __ARCH_WANT_SET_GET_RLIMIT +/* getrlimit and setrlimit are superseded with prlimit64 */ #define __NR_getrlimit 163 __SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit) #define __NR_setrlimit 164 __SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit) +#endif + #define __NR_getrusage 165 __SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage) #define __NR_umask 166