Re: [PATCH] asm-generic: Drop getrlimit and setrlimit syscalls from default list
From: Ley Foon Tan
Date: Mon Oct 24 2016 - 20:47:57 EST
On Mon, Oct 24, 2016 at 5:09 PM, James Hogan <james.hogan@xxxxxxxxxx> wrote:
> On Sat, Oct 22, 2016 at 03:14:04PM +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: Vineet Gupta <vgupta@xxxxxxxxxxxx>
>> Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
>> Cc: Will Deacon <will.deacon@xxxxxxx>
>> Cc: Mark Salter <msalter@xxxxxxxxxx>
>> Cc: Aurelien Jacquiot <a-jacquiot@xxxxxx>
>> Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>
>> Cc: Richard Kuo <rkuo@xxxxxxxxxxxxxx>
>> Cc: James Hogan <james.hogan@xxxxxxxxxx>
>> Cc: Ley Foon Tan <lftan@xxxxxxxxxx>
>> Cc: Jonas Bonn <jonas@xxxxxxxxxxxx>
>> Cc: Chen Liqin <liqin.linux@xxxxxxxxx>
>> Cc: Lennox Wu <lennox.wu@xxxxxxxxx>
>> Cc: Chris Metcalf <cmetcalf@xxxxxxxxxxxx>
>> Cc: Guan Xuetao <gxt@xxxxxxxxxxxxxxx>
>> Cc: Arnd Bergmann <arnd@xxxxxxxx>
>> Cc: Andrew Pinski <Andrew.Pinski@xxxxxxxxxx>
>> Cc: linux-snps-arc@xxxxxxxxxxxxxxxxxxx
>> Cc: linux-kernel@xxxxxxxxxxxxxxx
>> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
>> Cc: linux-c6x-dev@xxxxxxxxxxxxx
>> Cc: uclinux-h8-devel@xxxxxxxxxxxxxxxxxxxx
>> Cc: linux-hexagon@xxxxxxxxxxxxxxx
>> Cc: linux-metag@xxxxxxxxxxxxxxx
>> Cc: nios2-dev@xxxxxxxxxxxxxxxxxxxxxx
>> Cc: linux-arch@xxxxxxxxxxxxxx
>> Signed-off-by: Yury Norov <ynorov@xxxxxxxxxxxxxxxxxx>
>>
>> ---
>> 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 +
>
> Acked-by: James Hogan <james.hogan@xxxxxxxxxx> [metag]
>
> Cheers
> James
>
>> arch/nios2/include/uapi/asm/unistd.h | 1 +
Acked-by: Ley Foon Tan <lftan@xxxxxxxxxx> [nios2]
>> 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 +++++
>> 12 files changed, 16 insertions(+)
>>
>> diff --git a/arch/arc/include/uapi/asm/unistd.h b/arch/arc/include/uapi/asm/unistd.h
>> index 41fa2ec..928546d 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 043d17a..48355a6 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 12d73d9..f676231 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 7dd20ef..2f98394 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 2151760..52d585c 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 459b6ec..16b5cb3 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 51a32c7..b0dda4d 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 471905b..6812d81 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 d4008c3..7ad1bdc 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 24e9187..cf0505f 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 1f63c47..ef25aec 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
>>
>> /* Use the standard ABI for syscalls. */
>> #include <asm-generic/unistd.h>
>> diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
>> index 9b1462e..bbaeac0 100644
>> --- a/include/uapi/asm-generic/unistd.h
>> +++ b/include/uapi/asm-generic/unistd.h
>> @@ -465,10 +465,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
>> --
>> 2.7.4
>>