diff mbox series

[03/20] asm-generic: Drop getrlimit and setrlimit syscalls from default list

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

Commit Message

Yury Norov June 4, 2017, 11:59 a.m. UTC
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 +++++
 12 files changed, 16 insertions(+)

-- 
2.11.0

Comments

James Hogan June 5, 2017, 2:44 p.m. UTC | #1
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
Yury Norov June 7, 2017, 6:48 p.m. UTC | #2
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 mbox series

Patch

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