Re: [patch 15/18] x86/entry: Make syscall functions static
Mukesh Kumar Chaurasiya <[email protected]> Fri, 10 Jul 2026 01:13:15 +0530
| Newsgroups | gmane.linux.ports.riscv,gmane.linux.kernel,gmane.linux.ports.ppc64.devel,gmane.linux.ports.arm.kernel,gmane.linux.ports.alpha,gmane.linux.ports.mips,gmane.linux.ports.parisc,gmane.linux.ports.sh.devel,gmane.linux.uml.devel,gmane.linux.kernel.arc,gmane.linux.ports.hexagon,gmane.linux.ports.sparc,gmane.linux.kernel.cross-arch,gmane.linux.documentation |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Jul 07, 2026 at 09:06:57PM +0200, Thomas Gleixner wrote: > They are only used in the respective source files. No point in exposing > them. > > Signed-off-by: Thomas Gleixner <[email protected]> > --- > arch/x86/entry/syscall_32.c | 2 +- > arch/x86/entry/syscall_64.c | 10 ++++++---- > arch/x86/include/asm/syscall.h | 8 -------- > 3 files changed, 7 insertions(+), 13 deletions(-) > > --- a/arch/x86/entry/syscall_32.c > +++ b/arch/x86/entry/syscall_32.c > @@ -41,7 +41,7 @@ const sys_call_ptr_t sys_call_table[] = > #endif > > #define __SYSCALL(nr, sym) case nr: return __ia32_##sym(regs); > -long ia32_sys_call(const struct pt_regs *regs, unsigned int nr) > +static noinline long ia32_sys_call(const struct pt_regs *regs, unsigned int nr) > { > switch (nr) { > #include <asm/syscalls_32.h> > --- a/arch/x86/entry/syscall_64.c > +++ b/arch/x86/entry/syscall_64.c > @@ -32,7 +32,7 @@ const sys_call_ptr_t sys_call_table[] = > #undef __SYSCALL > > #define __SYSCALL(nr, sym) case nr: return __x64_##sym(regs); > -long x64_sys_call(const struct pt_regs *regs, unsigned int nr) > +static noinline long x64_sys_call(const struct pt_regs *regs, unsigned int nr) > { > switch (nr) { > #include <asm/syscalls_64.h> > @@ -40,15 +40,17 @@ long x64_sys_call(const struct pt_regs * > } > } > > -#ifdef CONFIG_X86_X32_ABI > -long x32_sys_call(const struct pt_regs *regs, unsigned int nr) > +static noinline long x32_sys_call(const struct pt_regs *regs, unsigned int nr) > { > +#ifdef CONFIG_X86_X32_ABI > switch (nr) { > #include <asm/syscalls_x32.h> > default: return __x64_sys_ni_syscall(regs); > } > -} > +#else > + return -ENOSYS; > #endif > +} > > static __always_inline bool do_syscall_x64(struct pt_regs *regs, int nr) > { > --- a/arch/x86/include/asm/syscall.h > +++ b/arch/x86/include/asm/syscall.h > @@ -21,14 +21,6 @@ typedef long (*sys_call_ptr_t)(const str > extern const sys_call_ptr_t sys_call_table[]; > > /* > - * These may not exist, but still put the prototypes in so we > - * can use IS_ENABLED(). > - */ > -extern long ia32_sys_call(const struct pt_regs *, unsigned int nr); > -extern long x32_sys_call(const struct pt_regs *, unsigned int nr); > -extern long x64_sys_call(const struct pt_regs *, unsigned int nr); > - > -/* > * Only the low 32 bits of orig_ax are meaningful, so we return int. > * This importantly ignores the high bits on 64-bit, so comparisons > * sign-extend the low 32 bits. > Reviewed-by: Mukesh Kumar Chaurasiya (IBM) <[email protected]>