From: Thomas Gleixner <tglx@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Shrikanth Hegde" <sshegde@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, "Kees Cook" <kees@kernel.org>,
"Huacai Chen" <chenhuacai@kernel.org>,
loongarch@lists.linux.dev, "Paul Walmsley" <pjw@kernel.org>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
linux-riscv@lists.infradead.org,
"Sven Schnelle" <svens@linux.ibm.com>,
linux-s390@vger.kernel.org, x86@kernel.org,
"Mark Rutland" <mark.rutland@arm.com>,
"Jinjie Ruan" <ruanjinjie@huawei.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Oleg Nesterov" <oleg@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Russell King" <linux@armlinux.org.uk>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Guo Ren" <guoren@kernel.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
"Helge Deller" <deller@gmx.de>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
"Richard Weinberger" <richard@nod.at>,
"Chris Zankel" <chris@zankel.net>,
linux-arm-kernel@lists.infradead.org,
linux-alpha@vger.kernel.org, linux-csky@vger.kernel.org,
linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
linux-parisc@vger.kernel.org, linux-sh@vger.kernel.org,
linux-um@lists.infradead.org, "Arnd Bergmann" <arnd@arndb.de>,
"Vineet Gupta" <vgupta@kernel.org>,
"Will Deacon" <will@kernel.org>, "Brian Cain" <bcain@kernel.org>,
"Michal Simek" <monstr@monstr.eu>,
"Dinh Nguyen" <dinguyen@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Andreas Larsson" <andreas@gaisler.com>,
linux-snps-arc@lists.infradead.org,
linux-hexagon@vger.kernel.org, linux-openrisc@vger.kernel.org,
sparclinux@vger.kernel.org, linux-arch@vger.kernel.org,
"Michal Suchánek" <msuchanek@suse.de>,
"Jonathan Corbet" <corbet@lwn.net>,
linux-doc@vger.kernel.org
Subject: [patch 17/18] x86/entry: Simplify the syscall number logic
Date: Tue, 07 Jul 2026 21:07:05 +0200 [thread overview]
Message-ID: <20260707190254.545214398@kernel.org> (raw)
In-Reply-To: 20260707181957.433213175@kernel.org
Converting from int to long, back to int and then to unsigned int is
confusing at best.
None of this voodoo is required. Negative syscall numbers including -1
don't need any of this treatment and the low level ASM code already does
the sign extension to 64-bit on a 64-bit kernel.
The only point where signedness matters is the comparison against the
maximum syscall number, but that can be simplified by just using a unsigned
argument for the various syscall invocation functions.
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
---
arch/x86/entry/syscall_32.c | 26 +++++++++++---------------
arch/x86/entry/syscall_64.c | 36 ++++++++++++++----------------------
arch/x86/include/asm/syscall.h | 2 +-
3 files changed, 26 insertions(+), 38 deletions(-)
--- a/arch/x86/entry/syscall_32.c
+++ b/arch/x86/entry/syscall_32.c
@@ -41,6 +41,8 @@ const sys_call_ptr_t sys_call_table[] =
#endif
#define __SYSCALL(nr, sym) case nr: return __ia32_##sym(regs);
+
+/* The unsigned int @nr argument is intentional as it creates denser code in a 64-bit build */
static noinline long ia32_sys_call(const struct pt_regs *regs, unsigned int nr)
{
switch (nr) {
@@ -49,7 +51,7 @@ static noinline long ia32_sys_call(const
}
}
-static __always_inline int syscall_32_enter(struct pt_regs *regs)
+static __always_inline long syscall_32_enter(struct pt_regs *regs)
{
if (IS_ENABLED(CONFIG_IA32_EMULATION))
current_thread_info()->status |= TS_COMPAT;
@@ -70,17 +72,11 @@ early_param("ia32_emulation", ia32_emula
/*
* Invoke a 32-bit syscall. Called with IRQs on in CT_STATE_KERNEL.
*/
-static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, int nr)
+static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Convert negative numbers to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int unr = nr;
-
- if (likely(unr < IA32_NR_syscalls)) {
- unr = array_index_nospec(unr, IA32_NR_syscalls);
- regs->ax = ia32_sys_call(regs, unr);
+ if (likely(nr < IA32_NR_syscalls)) {
+ nr = array_index_nospec(nr, IA32_NR_syscalls);
+ regs->ax = ia32_sys_call(regs, (unsigned int)nr);
}
}
@@ -126,7 +122,7 @@ static __always_inline bool int80_is_ext
*/
__visible noinstr void do_int80_emulation(struct pt_regs *regs)
{
- int nr;
+ long nr;
/* Kernel does not use INT $0x80! */
if (unlikely(!user_mode(regs))) {
@@ -205,7 +201,7 @@ static __always_inline bool int80_is_ext
*/
DEFINE_FREDENTRY_RAW(int80_emulation)
{
- int nr;
+ long nr;
enter_from_user_mode_randomize_stack(regs);
@@ -240,7 +236,7 @@ DEFINE_FREDENTRY_RAW(int80_emulation)
/* Handles int $0x80 on a 32bit kernel */
__visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
{
- int nr = syscall_32_enter(regs);
+ long nr = syscall_32_enter(regs);
/*
* Subtlety here: if ptrace pokes something larger than 2^31-1 into
@@ -260,7 +256,7 @@ DEFINE_FREDENTRY_RAW(int80_emulation)
static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
{
- int nr = syscall_32_enter(regs);
+ long nr = syscall_32_enter(regs);
int res;
enter_from_user_mode_randomize_stack(regs);
--- a/arch/x86/entry/syscall_64.c
+++ b/arch/x86/entry/syscall_64.c
@@ -32,6 +32,8 @@ const sys_call_ptr_t sys_call_table[] =
#undef __SYSCALL
#define __SYSCALL(nr, sym) case nr: return __x64_##sym(regs);
+
+/* The unsigned int @nr argument is intentional as it creates denser code */
static noinline long x64_sys_call(const struct pt_regs *regs, unsigned int nr)
{
switch (nr) {
@@ -52,39 +54,29 @@ static noinline long x32_sys_call(const
#endif
}
-static __always_inline bool do_syscall_x64(struct pt_regs *regs, int nr)
+static __always_inline bool do_syscall_x64(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Convert negative numbers to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int unr = nr;
-
- if (likely(unr < NR_syscalls)) {
- unr = array_index_nospec(unr, NR_syscalls);
- regs->ax = x64_sys_call(regs, unr);
+ if (likely(nr < NR_syscalls)) {
+ nr = array_index_nospec(nr, NR_syscalls);
+ regs->ax = x64_sys_call(regs, (unsigned int)nr);
return true;
}
return false;
}
-static __always_inline void do_syscall_x32(struct pt_regs *regs, int nr)
+static __always_inline void do_syscall_x32(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Adjust the starting offset of the table, and convert numbers
- * < __X32_SYSCALL_BIT to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int xnr = nr - __X32_SYSCALL_BIT;
-
- if (IS_ENABLED(CONFIG_X86_X32_ABI) && likely(xnr < X32_NR_syscalls)) {
- xnr = array_index_nospec(xnr, X32_NR_syscalls);
- regs->ax = x32_sys_call(regs, xnr);
+ /* Adjust the starting offset of the table */
+ nr -= __X32_SYSCALL_BIT;
+
+ if (IS_ENABLED(CONFIG_X86_X32_ABI) && likely(nr < X32_NR_syscalls)) {
+ nr = array_index_nospec(nr, X32_NR_syscalls);
+ regs->ax = x32_sys_call(regs, (unsigned int)nr);
}
}
/* Returns true to return using SYSRET, or false to use IRET */
-__visible noinstr bool do_syscall_64(struct pt_regs *regs, int nr)
+__visible noinstr bool do_syscall_64(struct pt_regs *regs, long nr)
{
nr = syscall_enter_from_user_mode_randomize_stack(regs, nr);
--- a/arch/x86/include/asm/syscall.h
+++ b/arch/x86/include/asm/syscall.h
@@ -164,7 +164,7 @@ static inline int syscall_get_arch(struc
? AUDIT_ARCH_I386 : AUDIT_ARCH_X86_64;
}
-bool do_syscall_64(struct pt_regs *regs, int nr);
+bool do_syscall_64(struct pt_regs *regs, long nr);
void do_int80_emulation(struct pt_regs *regs);
#endif /* CONFIG_X86_32 */
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Shrikanth Hegde" <sshegde@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, "Kees Cook" <kees@kernel.org>,
"Huacai Chen" <chenhuacai@kernel.org>,
loongarch@lists.linux.dev, "Paul Walmsley" <pjw@kernel.org>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
linux-riscv@lists.infradead.org,
"Sven Schnelle" <svens@linux.ibm.com>,
linux-s390@vger.kernel.org, x86@kernel.org,
"Mark Rutland" <mark.rutland@arm.com>,
"Jinjie Ruan" <ruanjinjie@huawei.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Oleg Nesterov" <oleg@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Russell King" <linux@armlinux.org.uk>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Guo Ren" <guoren@kernel.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
"Helge Deller" <deller@gmx.de>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
"Richard Weinberger" <richard@nod.at>,
"Chris Zankel" <chris@zankel.net>,
linux-arm-kernel@lists.infradead.org,
linux-alpha@vger.kernel.org, linux-csky@vger.kernel.org,
linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
linux-parisc@vger.kernel.org, linux-sh@vger.kernel.org,
linux-um@lists.infradead.org, "Arnd Bergmann" <arnd@arndb.de>,
"Vineet Gupta" <vgupta@kernel.org>,
"Will Deacon" <will@kernel.org>, "Brian Cain" <bcain@kernel.org>,
"Michal Simek" <monstr@monstr.eu>,
"Dinh Nguyen" <dinguyen@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Andreas Larsson" <andreas@gaisler.com>,
linux-snps-arc@lists.infradead.org,
linux-hexagon@vger.kernel.org, linux-openrisc@vger.kernel.org,
sparclinux@vger.kernel.org, linux-arch@vger.kernel.org,
"Michal Suchánek" <msuchanek@suse.de>,
"Jonathan Corbet" <corbet@lwn.net>,
linux-doc@vger.kernel.org
Subject: [patch 17/18] x86/entry: Simplify the syscall number logic
Date: Tue, 07 Jul 2026 21:07:05 +0200 [thread overview]
Message-ID: <20260707190254.545214398@kernel.org> (raw)
In-Reply-To: 20260707181957.433213175@kernel.org
Converting from int to long, back to int and then to unsigned int is
confusing at best.
None of this voodoo is required. Negative syscall numbers including -1
don't need any of this treatment and the low level ASM code already does
the sign extension to 64-bit on a 64-bit kernel.
The only point where signedness matters is the comparison against the
maximum syscall number, but that can be simplified by just using a unsigned
argument for the various syscall invocation functions.
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
---
arch/x86/entry/syscall_32.c | 26 +++++++++++---------------
arch/x86/entry/syscall_64.c | 36 ++++++++++++++----------------------
arch/x86/include/asm/syscall.h | 2 +-
3 files changed, 26 insertions(+), 38 deletions(-)
--- a/arch/x86/entry/syscall_32.c
+++ b/arch/x86/entry/syscall_32.c
@@ -41,6 +41,8 @@ const sys_call_ptr_t sys_call_table[] =
#endif
#define __SYSCALL(nr, sym) case nr: return __ia32_##sym(regs);
+
+/* The unsigned int @nr argument is intentional as it creates denser code in a 64-bit build */
static noinline long ia32_sys_call(const struct pt_regs *regs, unsigned int nr)
{
switch (nr) {
@@ -49,7 +51,7 @@ static noinline long ia32_sys_call(const
}
}
-static __always_inline int syscall_32_enter(struct pt_regs *regs)
+static __always_inline long syscall_32_enter(struct pt_regs *regs)
{
if (IS_ENABLED(CONFIG_IA32_EMULATION))
current_thread_info()->status |= TS_COMPAT;
@@ -70,17 +72,11 @@ early_param("ia32_emulation", ia32_emula
/*
* Invoke a 32-bit syscall. Called with IRQs on in CT_STATE_KERNEL.
*/
-static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, int nr)
+static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Convert negative numbers to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int unr = nr;
-
- if (likely(unr < IA32_NR_syscalls)) {
- unr = array_index_nospec(unr, IA32_NR_syscalls);
- regs->ax = ia32_sys_call(regs, unr);
+ if (likely(nr < IA32_NR_syscalls)) {
+ nr = array_index_nospec(nr, IA32_NR_syscalls);
+ regs->ax = ia32_sys_call(regs, (unsigned int)nr);
}
}
@@ -126,7 +122,7 @@ static __always_inline bool int80_is_ext
*/
__visible noinstr void do_int80_emulation(struct pt_regs *regs)
{
- int nr;
+ long nr;
/* Kernel does not use INT $0x80! */
if (unlikely(!user_mode(regs))) {
@@ -205,7 +201,7 @@ static __always_inline bool int80_is_ext
*/
DEFINE_FREDENTRY_RAW(int80_emulation)
{
- int nr;
+ long nr;
enter_from_user_mode_randomize_stack(regs);
@@ -240,7 +236,7 @@ DEFINE_FREDENTRY_RAW(int80_emulation)
/* Handles int $0x80 on a 32bit kernel */
__visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
{
- int nr = syscall_32_enter(regs);
+ long nr = syscall_32_enter(regs);
/*
* Subtlety here: if ptrace pokes something larger than 2^31-1 into
@@ -260,7 +256,7 @@ DEFINE_FREDENTRY_RAW(int80_emulation)
static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
{
- int nr = syscall_32_enter(regs);
+ long nr = syscall_32_enter(regs);
int res;
enter_from_user_mode_randomize_stack(regs);
--- a/arch/x86/entry/syscall_64.c
+++ b/arch/x86/entry/syscall_64.c
@@ -32,6 +32,8 @@ const sys_call_ptr_t sys_call_table[] =
#undef __SYSCALL
#define __SYSCALL(nr, sym) case nr: return __x64_##sym(regs);
+
+/* The unsigned int @nr argument is intentional as it creates denser code */
static noinline long x64_sys_call(const struct pt_regs *regs, unsigned int nr)
{
switch (nr) {
@@ -52,39 +54,29 @@ static noinline long x32_sys_call(const
#endif
}
-static __always_inline bool do_syscall_x64(struct pt_regs *regs, int nr)
+static __always_inline bool do_syscall_x64(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Convert negative numbers to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int unr = nr;
-
- if (likely(unr < NR_syscalls)) {
- unr = array_index_nospec(unr, NR_syscalls);
- regs->ax = x64_sys_call(regs, unr);
+ if (likely(nr < NR_syscalls)) {
+ nr = array_index_nospec(nr, NR_syscalls);
+ regs->ax = x64_sys_call(regs, (unsigned int)nr);
return true;
}
return false;
}
-static __always_inline void do_syscall_x32(struct pt_regs *regs, int nr)
+static __always_inline void do_syscall_x32(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Adjust the starting offset of the table, and convert numbers
- * < __X32_SYSCALL_BIT to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int xnr = nr - __X32_SYSCALL_BIT;
-
- if (IS_ENABLED(CONFIG_X86_X32_ABI) && likely(xnr < X32_NR_syscalls)) {
- xnr = array_index_nospec(xnr, X32_NR_syscalls);
- regs->ax = x32_sys_call(regs, xnr);
+ /* Adjust the starting offset of the table */
+ nr -= __X32_SYSCALL_BIT;
+
+ if (IS_ENABLED(CONFIG_X86_X32_ABI) && likely(nr < X32_NR_syscalls)) {
+ nr = array_index_nospec(nr, X32_NR_syscalls);
+ regs->ax = x32_sys_call(regs, (unsigned int)nr);
}
}
/* Returns true to return using SYSRET, or false to use IRET */
-__visible noinstr bool do_syscall_64(struct pt_regs *regs, int nr)
+__visible noinstr bool do_syscall_64(struct pt_regs *regs, long nr)
{
nr = syscall_enter_from_user_mode_randomize_stack(regs, nr);
--- a/arch/x86/include/asm/syscall.h
+++ b/arch/x86/include/asm/syscall.h
@@ -164,7 +164,7 @@ static inline int syscall_get_arch(struc
? AUDIT_ARCH_I386 : AUDIT_ARCH_X86_64;
}
-bool do_syscall_64(struct pt_regs *regs, int nr);
+bool do_syscall_64(struct pt_regs *regs, long nr);
void do_int80_emulation(struct pt_regs *regs);
#endif /* CONFIG_X86_32 */
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Shrikanth Hegde" <sshegde@linux.ibm.com>,
linuxppc-dev@lists.ozlabs.org, "Kees Cook" <kees@kernel.org>,
"Huacai Chen" <chenhuacai@kernel.org>,
loongarch@lists.linux.dev, "Paul Walmsley" <pjw@kernel.org>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
linux-riscv@lists.infradead.org,
"Sven Schnelle" <svens@linux.ibm.com>,
linux-s390@vger.kernel.org, x86@kernel.org,
"Mark Rutland" <mark.rutland@arm.com>,
"Jinjie Ruan" <ruanjinjie@huawei.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Oleg Nesterov" <oleg@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Russell King" <linux@armlinux.org.uk>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Guo Ren" <guoren@kernel.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
"Helge Deller" <deller@gmx.de>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
"Richard Weinberger" <richard@nod.at>,
"Chris Zankel" <chris@zankel.net>,
linux-arm-kernel@lists.infradead.org,
linux-alpha@vger.kernel.org, linux-csky@vger.kernel.org,
linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org,
linux-parisc@vger.kernel.org, linux-sh@vger.kernel.org,
linux-um@lists.infradead.org, "Arnd Bergmann" <arnd@arndb.de>,
"Vineet Gupta" <vgupta@kernel.org>,
"Will Deacon" <will@kernel.org>, "Brian Cain" <bcain@kernel.org>,
"Michal Simek" <monstr@monstr.eu>,
"Dinh Nguyen" <dinguyen@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"Andreas Larsson" <andreas@gaisler.com>,
linux-snps-arc@lists.infradead.org,
linux-hexagon@vger.kernel.org, linux-openrisc@vger.kernel.org,
sparclinux@vger.kernel.org, linux-arch@vger.kernel.org,
"Michal Suchánek" <msuchanek@suse.de>,
"Jonathan Corbet" <corbet@lwn.net>,
linux-doc@vger.kernel.org
Subject: [patch 17/18] x86/entry: Simplify the syscall number logic
Date: Tue, 07 Jul 2026 21:07:05 +0200 [thread overview]
Message-ID: <20260707190254.545214398@kernel.org> (raw)
In-Reply-To: 20260707181957.433213175@kernel.org
Converting from int to long, back to int and then to unsigned int is
confusing at best.
None of this voodoo is required. Negative syscall numbers including -1
don't need any of this treatment and the low level ASM code already does
the sign extension to 64-bit on a 64-bit kernel.
The only point where signedness matters is the comparison against the
maximum syscall number, but that can be simplified by just using a unsigned
argument for the various syscall invocation functions.
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
---
arch/x86/entry/syscall_32.c | 26 +++++++++++---------------
arch/x86/entry/syscall_64.c | 36 ++++++++++++++----------------------
arch/x86/include/asm/syscall.h | 2 +-
3 files changed, 26 insertions(+), 38 deletions(-)
--- a/arch/x86/entry/syscall_32.c
+++ b/arch/x86/entry/syscall_32.c
@@ -41,6 +41,8 @@ const sys_call_ptr_t sys_call_table[] =
#endif
#define __SYSCALL(nr, sym) case nr: return __ia32_##sym(regs);
+
+/* The unsigned int @nr argument is intentional as it creates denser code in a 64-bit build */
static noinline long ia32_sys_call(const struct pt_regs *regs, unsigned int nr)
{
switch (nr) {
@@ -49,7 +51,7 @@ static noinline long ia32_sys_call(const
}
}
-static __always_inline int syscall_32_enter(struct pt_regs *regs)
+static __always_inline long syscall_32_enter(struct pt_regs *regs)
{
if (IS_ENABLED(CONFIG_IA32_EMULATION))
current_thread_info()->status |= TS_COMPAT;
@@ -70,17 +72,11 @@ early_param("ia32_emulation", ia32_emula
/*
* Invoke a 32-bit syscall. Called with IRQs on in CT_STATE_KERNEL.
*/
-static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, int nr)
+static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Convert negative numbers to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int unr = nr;
-
- if (likely(unr < IA32_NR_syscalls)) {
- unr = array_index_nospec(unr, IA32_NR_syscalls);
- regs->ax = ia32_sys_call(regs, unr);
+ if (likely(nr < IA32_NR_syscalls)) {
+ nr = array_index_nospec(nr, IA32_NR_syscalls);
+ regs->ax = ia32_sys_call(regs, (unsigned int)nr);
}
}
@@ -126,7 +122,7 @@ static __always_inline bool int80_is_ext
*/
__visible noinstr void do_int80_emulation(struct pt_regs *regs)
{
- int nr;
+ long nr;
/* Kernel does not use INT $0x80! */
if (unlikely(!user_mode(regs))) {
@@ -205,7 +201,7 @@ static __always_inline bool int80_is_ext
*/
DEFINE_FREDENTRY_RAW(int80_emulation)
{
- int nr;
+ long nr;
enter_from_user_mode_randomize_stack(regs);
@@ -240,7 +236,7 @@ DEFINE_FREDENTRY_RAW(int80_emulation)
/* Handles int $0x80 on a 32bit kernel */
__visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
{
- int nr = syscall_32_enter(regs);
+ long nr = syscall_32_enter(regs);
/*
* Subtlety here: if ptrace pokes something larger than 2^31-1 into
@@ -260,7 +256,7 @@ DEFINE_FREDENTRY_RAW(int80_emulation)
static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
{
- int nr = syscall_32_enter(regs);
+ long nr = syscall_32_enter(regs);
int res;
enter_from_user_mode_randomize_stack(regs);
--- a/arch/x86/entry/syscall_64.c
+++ b/arch/x86/entry/syscall_64.c
@@ -32,6 +32,8 @@ const sys_call_ptr_t sys_call_table[] =
#undef __SYSCALL
#define __SYSCALL(nr, sym) case nr: return __x64_##sym(regs);
+
+/* The unsigned int @nr argument is intentional as it creates denser code */
static noinline long x64_sys_call(const struct pt_regs *regs, unsigned int nr)
{
switch (nr) {
@@ -52,39 +54,29 @@ static noinline long x32_sys_call(const
#endif
}
-static __always_inline bool do_syscall_x64(struct pt_regs *regs, int nr)
+static __always_inline bool do_syscall_x64(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Convert negative numbers to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int unr = nr;
-
- if (likely(unr < NR_syscalls)) {
- unr = array_index_nospec(unr, NR_syscalls);
- regs->ax = x64_sys_call(regs, unr);
+ if (likely(nr < NR_syscalls)) {
+ nr = array_index_nospec(nr, NR_syscalls);
+ regs->ax = x64_sys_call(regs, (unsigned int)nr);
return true;
}
return false;
}
-static __always_inline void do_syscall_x32(struct pt_regs *regs, int nr)
+static __always_inline void do_syscall_x32(struct pt_regs *regs, unsigned long nr)
{
- /*
- * Adjust the starting offset of the table, and convert numbers
- * < __X32_SYSCALL_BIT to very high and thus out of range
- * numbers for comparisons.
- */
- unsigned int xnr = nr - __X32_SYSCALL_BIT;
-
- if (IS_ENABLED(CONFIG_X86_X32_ABI) && likely(xnr < X32_NR_syscalls)) {
- xnr = array_index_nospec(xnr, X32_NR_syscalls);
- regs->ax = x32_sys_call(regs, xnr);
+ /* Adjust the starting offset of the table */
+ nr -= __X32_SYSCALL_BIT;
+
+ if (IS_ENABLED(CONFIG_X86_X32_ABI) && likely(nr < X32_NR_syscalls)) {
+ nr = array_index_nospec(nr, X32_NR_syscalls);
+ regs->ax = x32_sys_call(regs, (unsigned int)nr);
}
}
/* Returns true to return using SYSRET, or false to use IRET */
-__visible noinstr bool do_syscall_64(struct pt_regs *regs, int nr)
+__visible noinstr bool do_syscall_64(struct pt_regs *regs, long nr)
{
nr = syscall_enter_from_user_mode_randomize_stack(regs, nr);
--- a/arch/x86/include/asm/syscall.h
+++ b/arch/x86/include/asm/syscall.h
@@ -164,7 +164,7 @@ static inline int syscall_get_arch(struc
? AUDIT_ARCH_I386 : AUDIT_ARCH_X86_64;
}
-bool do_syscall_64(struct pt_regs *regs, int nr);
+bool do_syscall_64(struct pt_regs *regs, long nr);
void do_int80_emulation(struct pt_regs *regs);
#endif /* CONFIG_X86_32 */
_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc
next prev parent reply other threads:[~2026-07-07 19:07 UTC|newest]
Thread overview: 304+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 19:05 [patch 00/18] entry: Consolidate and rework syscall entry handling Thomas Gleixner
2026-07-07 19:05 ` Thomas Gleixner
2026-07-07 19:05 ` Thomas Gleixner
2026-07-07 19:05 ` [patch 01/18] powerpc: Move stack randomization after syscall_enter_from_user_mode() Thomas Gleixner
2026-07-07 19:05 ` Thomas Gleixner
2026-07-07 19:05 ` Thomas Gleixner
2026-07-08 14:07 ` Shrikanth Hegde
2026-07-08 14:07 ` Shrikanth Hegde
2026-07-08 14:07 ` Shrikanth Hegde
2026-07-08 17:22 ` Radu Rendec
2026-07-08 17:22 ` Radu Rendec
2026-07-08 17:22 ` Radu Rendec
2026-07-09 1:20 ` Jinjie Ruan
2026-07-09 1:20 ` Jinjie Ruan
2026-07-09 1:20 ` Jinjie Ruan
2026-07-09 11:12 ` Philippe Mathieu-Daudé
2026-07-09 11:12 ` Philippe Mathieu-Daudé
2026-07-09 11:12 ` Philippe Mathieu-Daudé
2026-07-09 18:32 ` Mukesh Kumar Chaurasiya
2026-07-09 18:32 ` Mukesh Kumar Chaurasiya
2026-07-09 18:32 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 02/18] randomize_kstack: Provide add_random_kstack_offset_irqsoff() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 17:24 ` Radu Rendec
2026-07-08 17:24 ` Radu Rendec
2026-07-08 17:24 ` Radu Rendec
2026-07-09 2:13 ` Jinjie Ruan
2026-07-09 2:13 ` Jinjie Ruan
2026-07-09 2:13 ` Jinjie Ruan
2026-07-09 16:23 ` Kees Cook
2026-07-09 16:23 ` Kees Cook
2026-07-09 16:23 ` Kees Cook
2026-07-09 18:34 ` Mukesh Kumar Chaurasiya
2026-07-09 18:34 ` Mukesh Kumar Chaurasiya
2026-07-09 18:34 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 03/18] entry: Provide [syscall_]enter_from_user_mode_randomize_stack() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 17:26 ` Radu Rendec
2026-07-08 17:26 ` Radu Rendec
2026-07-08 17:26 ` Radu Rendec
2026-07-09 2:34 ` Jinjie Ruan
2026-07-09 2:34 ` Jinjie Ruan
2026-07-09 2:34 ` Jinjie Ruan
2026-07-09 3:46 ` Jinjie Ruan
2026-07-09 3:46 ` Jinjie Ruan
2026-07-09 3:46 ` Jinjie Ruan
2026-07-09 11:15 ` Philippe Mathieu-Daudé
2026-07-09 11:15 ` Philippe Mathieu-Daudé
2026-07-09 11:15 ` Philippe Mathieu-Daudé
2026-07-09 20:16 ` Mukesh Kumar Chaurasiya
2026-07-09 20:16 ` Mukesh Kumar Chaurasiya
2026-07-09 20:16 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 04/18] loongarch/syscall: Use syscall_enter_from_user_mode_randomize_stack() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 18:37 ` Radu Rendec
2026-07-08 18:37 ` Radu Rendec
2026-07-08 18:37 ` Radu Rendec
2026-07-09 2:37 ` Jinjie Ruan
2026-07-09 2:37 ` Jinjie Ruan
2026-07-09 2:37 ` Jinjie Ruan
2026-07-09 11:15 ` Philippe Mathieu-Daudé
2026-07-09 11:15 ` Philippe Mathieu-Daudé
2026-07-09 11:15 ` Philippe Mathieu-Daudé
2026-07-09 18:40 ` Mukesh Kumar Chaurasiya
2026-07-09 18:40 ` Mukesh Kumar Chaurasiya
2026-07-09 18:40 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 05/18] powerpc/syscall: " Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 18:35 ` Radu Rendec
2026-07-08 18:35 ` Radu Rendec
2026-07-08 18:35 ` Radu Rendec
2026-07-09 2:38 ` Jinjie Ruan
2026-07-09 2:38 ` Jinjie Ruan
2026-07-09 2:38 ` Jinjie Ruan
2026-07-09 11:16 ` Philippe Mathieu-Daudé
2026-07-09 11:16 ` Philippe Mathieu-Daudé
2026-07-09 11:16 ` Philippe Mathieu-Daudé
2026-07-09 18:41 ` Mukesh Kumar Chaurasiya
2026-07-09 18:41 ` Mukesh Kumar Chaurasiya
2026-07-09 18:41 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 06/18] riscv/syscall: " Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 20:57 ` Radu Rendec
2026-07-08 20:57 ` Radu Rendec
2026-07-08 20:57 ` Radu Rendec
2026-07-09 2:38 ` Jinjie Ruan
2026-07-09 2:38 ` Jinjie Ruan
2026-07-09 2:38 ` Jinjie Ruan
2026-07-09 11:16 ` Philippe Mathieu-Daudé
2026-07-09 11:16 ` Philippe Mathieu-Daudé
2026-07-09 11:16 ` Philippe Mathieu-Daudé
2026-07-09 18:42 ` Mukesh Kumar Chaurasiya
2026-07-09 18:42 ` Mukesh Kumar Chaurasiya
2026-07-09 18:42 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-13 7:06 ` [patch 06/18] " Guo Ren
2026-07-13 7:06 ` Guo Ren
2026-07-13 7:06 ` Guo Ren
2026-07-07 19:06 ` [patch 07/18] s390/syscall: Use enter_from_user_mode_randomize_stack() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 6:47 ` Sven Schnelle
2026-07-08 6:47 ` Sven Schnelle
2026-07-08 6:47 ` Sven Schnelle
2026-07-08 20:57 ` Radu Rendec
2026-07-08 20:57 ` Radu Rendec
2026-07-08 20:57 ` Radu Rendec
2026-07-09 2:39 ` Jinjie Ruan
2026-07-09 2:39 ` Jinjie Ruan
2026-07-09 2:39 ` Jinjie Ruan
2026-07-09 2:46 ` Jinjie Ruan
2026-07-09 2:46 ` Jinjie Ruan
2026-07-09 2:46 ` Jinjie Ruan
2026-07-09 11:17 ` Philippe Mathieu-Daudé
2026-07-09 11:17 ` Philippe Mathieu-Daudé
2026-07-09 11:17 ` Philippe Mathieu-Daudé
2026-07-09 18:43 ` Mukesh Kumar Chaurasiya
2026-07-09 18:43 ` Mukesh Kumar Chaurasiya
2026-07-09 18:43 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 08/18] x86/syscall: Use [syscall_]enter_from_user_mode_randomize_stack() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 20:59 ` Radu Rendec
2026-07-08 20:59 ` Radu Rendec
2026-07-08 20:59 ` Radu Rendec
2026-07-09 2:44 ` Jinjie Ruan
2026-07-09 2:44 ` Jinjie Ruan
2026-07-09 2:44 ` Jinjie Ruan
2026-07-09 11:18 ` Philippe Mathieu-Daudé
2026-07-09 11:18 ` Philippe Mathieu-Daudé
2026-07-09 11:18 ` Philippe Mathieu-Daudé
2026-07-09 18:45 ` Mukesh Kumar Chaurasiya
2026-07-09 18:45 ` Mukesh Kumar Chaurasiya
2026-07-09 18:45 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 09/18] entry: Remove syscall_enter_from_user_mode() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 21:21 ` Radu Rendec
2026-07-08 21:21 ` Radu Rendec
2026-07-08 21:21 ` Radu Rendec
2026-07-08 22:08 ` Thomas Gleixner
2026-07-08 22:08 ` Thomas Gleixner
2026-07-08 22:08 ` Thomas Gleixner
2026-07-09 2:49 ` Jinjie Ruan
2026-07-09 2:49 ` Jinjie Ruan
2026-07-09 2:49 ` Jinjie Ruan
2026-07-09 18:49 ` Mukesh Kumar Chaurasiya
2026-07-09 18:49 ` Mukesh Kumar Chaurasiya
2026-07-09 18:49 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 10/18] entry: Use syscall number instead of rereading it Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 21:39 ` Radu Rendec
2026-07-08 21:39 ` Radu Rendec
2026-07-08 21:39 ` Radu Rendec
2026-07-09 2:55 ` Jinjie Ruan
2026-07-09 2:55 ` Jinjie Ruan
2026-07-09 2:55 ` Jinjie Ruan
2026-07-09 11:20 ` Philippe Mathieu-Daudé
2026-07-09 11:20 ` Philippe Mathieu-Daudé
2026-07-09 11:20 ` Philippe Mathieu-Daudé
2026-07-09 11:22 ` Philippe Mathieu-Daudé
2026-07-09 11:22 ` Philippe Mathieu-Daudé
2026-07-09 11:22 ` Philippe Mathieu-Daudé
2026-07-09 18:50 ` Mukesh Kumar Chaurasiya
2026-07-09 18:50 ` Mukesh Kumar Chaurasiya
2026-07-09 18:50 ` Mukesh Kumar Chaurasiya
2026-07-12 12:44 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 11/18] seccomp, treewide: Rename and convert __secure_computing() to return boolean Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 1:43 ` Jinjie Ruan
2026-07-08 1:43 ` Jinjie Ruan
2026-07-08 1:43 ` Jinjie Ruan
2026-07-08 9:15 ` Thomas Gleixner
2026-07-08 9:15 ` Thomas Gleixner
2026-07-08 9:15 ` Thomas Gleixner
2026-07-08 16:04 ` Oleg Nesterov
2026-07-08 16:04 ` Oleg Nesterov
2026-07-08 16:04 ` Oleg Nesterov
2026-07-08 21:49 ` Thomas Gleixner
2026-07-08 21:49 ` Thomas Gleixner
2026-07-08 21:49 ` Thomas Gleixner
2026-07-09 16:22 ` Kees Cook
2026-07-09 16:22 ` Kees Cook
2026-07-09 16:22 ` Kees Cook
2026-07-09 19:10 ` Mukesh Kumar Chaurasiya
2026-07-09 19:10 ` Mukesh Kumar Chaurasiya
2026-07-09 19:10 ` Mukesh Kumar Chaurasiya
2026-07-12 12:43 ` [tip: core/entry] " tip-bot2 for Jinjie Ruan
2026-07-07 19:06 ` [patch 12/18] ptrace, treewide: Rename ptrace_report_syscall_entry() to ptrace_report_syscall_permit_entry() Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 15:46 ` Oleg Nesterov
2026-07-08 15:46 ` Oleg Nesterov
2026-07-08 15:46 ` Oleg Nesterov
2026-07-09 1:41 ` Jinjie Ruan
2026-07-09 1:41 ` Jinjie Ruan
2026-07-09 1:41 ` Jinjie Ruan
2026-07-09 8:41 ` Geert Uytterhoeven
2026-07-09 8:41 ` Geert Uytterhoeven
2026-07-09 8:41 ` Geert Uytterhoeven
2026-07-09 17:03 ` Radu Rendec
2026-07-09 17:03 ` Radu Rendec
2026-07-09 17:03 ` Radu Rendec
2026-07-09 19:22 ` Mukesh Kumar Chaurasiya
2026-07-09 19:22 ` Mukesh Kumar Chaurasiya
2026-07-09 19:22 ` Mukesh Kumar Chaurasiya
2026-07-10 10:42 ` Michal Suchánek
2026-07-10 10:42 ` Michal Suchánek
2026-07-10 11:16 ` Oleg Nesterov
2026-07-10 11:16 ` Oleg Nesterov
2026-07-10 11:16 ` Oleg Nesterov
2026-07-12 12:43 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:06 ` [patch 13/18] entry: Make trace_syscall_enter() return type bool Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-08 15:52 ` Michal Suchánek
2026-07-08 15:52 ` Michal Suchánek
2026-07-08 15:52 ` Michal Suchánek
2026-07-08 20:34 ` Thomas Gleixner
2026-07-08 20:34 ` Thomas Gleixner
2026-07-08 20:34 ` Thomas Gleixner
2026-07-08 23:14 ` Thomas Gleixner
2026-07-08 23:14 ` Thomas Gleixner
2026-07-08 23:14 ` Thomas Gleixner
2026-07-09 16:26 ` David Laight
2026-07-09 16:26 ` David Laight
2026-07-09 16:26 ` David Laight
2026-07-10 11:01 ` Michal Suchánek
2026-07-10 11:01 ` Michal Suchánek
2026-07-10 11:40 ` Oleg Nesterov
2026-07-10 11:40 ` Oleg Nesterov
2026-07-10 11:40 ` Oleg Nesterov
2026-07-10 12:32 ` Michal Suchánek
2026-07-10 12:32 ` Michal Suchánek
2026-07-10 12:32 ` Michal Suchánek
2026-07-10 12:52 ` Oleg Nesterov
2026-07-10 12:52 ` Oleg Nesterov
2026-07-10 12:52 ` Oleg Nesterov
2026-07-10 15:20 ` Michal Suchánek
2026-07-10 15:20 ` Michal Suchánek
2026-07-11 20:33 ` Thomas Gleixner
2026-07-11 20:33 ` Thomas Gleixner
2026-07-11 20:33 ` Thomas Gleixner
2026-07-14 8:20 ` Michal Suchánek
2026-07-07 19:06 ` [patch 14/18] entry: Make return type of syscall_trace_enter() bool Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-09 19:36 ` Mukesh Kumar Chaurasiya
2026-07-09 19:36 ` Mukesh Kumar Chaurasiya
2026-07-09 19:36 ` Mukesh Kumar Chaurasiya
2026-07-07 19:06 ` [patch 15/18] x86/entry: Make syscall functions static Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-07 19:06 ` Thomas Gleixner
2026-07-09 1:47 ` Jinjie Ruan
2026-07-09 1:47 ` Jinjie Ruan
2026-07-09 1:47 ` Jinjie Ruan
2026-07-09 19:43 ` Mukesh Kumar Chaurasiya
2026-07-09 19:43 ` Mukesh Kumar Chaurasiya
2026-07-09 19:43 ` Mukesh Kumar Chaurasiya
2026-07-12 12:43 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:07 ` [patch 16/18] x86/entry: Get rid of the sys_ni_syscall() indirection Thomas Gleixner
2026-07-07 19:07 ` Thomas Gleixner
2026-07-07 19:07 ` Thomas Gleixner
2026-07-09 2:03 ` Jinjie Ruan
2026-07-09 2:03 ` Jinjie Ruan
2026-07-09 2:03 ` Jinjie Ruan
2026-07-12 12:43 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:07 ` Thomas Gleixner [this message]
2026-07-07 19:07 ` [patch 17/18] x86/entry: Simplify the syscall number logic Thomas Gleixner
2026-07-07 19:07 ` Thomas Gleixner
2026-07-12 12:43 ` [tip: core/entry] " tip-bot2 for Thomas Gleixner
2026-07-07 19:07 ` [patch 18/18] entry, treewide: Make syscall_enter_from_user_mode[_work]() indicate syscall execution Thomas Gleixner
2026-07-07 19:07 ` Thomas Gleixner
2026-07-07 19:07 ` Thomas Gleixner
2026-07-08 5:21 ` Shrikanth Hegde
2026-07-08 5:21 ` Shrikanth Hegde
2026-07-08 5:21 ` Shrikanth Hegde
2026-07-08 9:16 ` Thomas Gleixner
2026-07-08 9:16 ` Thomas Gleixner
2026-07-08 9:16 ` Thomas Gleixner
2026-07-09 19:49 ` Mukesh Kumar Chaurasiya
2026-07-09 19:49 ` Mukesh Kumar Chaurasiya
2026-07-09 19:49 ` Mukesh Kumar Chaurasiya
2026-07-09 20:15 ` [patch 00/18] entry: Consolidate and rework syscall entry handling Mukesh Kumar Chaurasiya
2026-07-09 20:15 ` Mukesh Kumar Chaurasiya
2026-07-09 20:15 ` Mukesh Kumar Chaurasiya
2026-07-11 12:29 ` Magnus Lindholm
2026-07-11 12:29 ` Magnus Lindholm
2026-07-11 12:29 ` Magnus Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260707190254.545214398@kernel.org \
--to=tglx@kernel.org \
--cc=andreas@gaisler.com \
--cc=arnd@arndb.de \
--cc=bcain@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=chris@zankel.net \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=dinguyen@kernel.org \
--cc=geert@linux-m68k.org \
--cc=guoren@kernel.org \
--cc=kees@kernel.org \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-csky@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-openrisc@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-um@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=luto@kernel.org \
--cc=mark.rutland@arm.com \
--cc=monstr@monstr.eu \
--cc=mpe@ellerman.id.au \
--cc=msuchanek@suse.de \
--cc=oleg@redhat.com \
--cc=palmer@dabbelt.com \
--cc=peterz@infradead.org \
--cc=pjw@kernel.org \
--cc=richard.henderson@linaro.org \
--cc=richard@nod.at \
--cc=ruanjinjie@huawei.com \
--cc=sparclinux@vger.kernel.org \
--cc=sshegde@linux.ibm.com \
--cc=svens@linux.ibm.com \
--cc=tsbogend@alpha.franken.de \
--cc=vgupta@kernel.org \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=ysato@users.sourceforge.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.