Re: [PATCH 1/5] parisc: Avoid compat syscalls when COMPAT=n
Mikulas Patocka <[email protected]>
| Newsgroups | org.kernel.vger.linux-parisc |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 8 Apr 2026, Helge Deller wrote: > From: Helge Deller <[email protected]> > > Drop unnecessary code and syscall tables when we run a 64-bit > kernel with conpat mode disabled. > > Signed-off-by: Helge Deller <[email protected]> Hi Where can I download 64-bit parisc userspace? I am interested in trying it. Mikulas > --- > arch/parisc/kernel/syscall.S | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S > index f58c4bccfbce..bc5421ca537f 100644 > --- a/arch/parisc/kernel/syscall.S > +++ b/arch/parisc/kernel/syscall.S > @@ -241,7 +241,7 @@ linux_gateway_entry: > /* Note! We cannot use the syscall table that is mapped > nearby since the gateway page is mapped execute-only. */ > > -#ifdef CONFIG_64BIT > +#if defined(CONFIG_64BIT) && defined(CONFIG_COMPAT) > ldil L%sys_call_table, %r1 > or,ev %r2,%r2,%r2 > ldil L%sys_call_table64, %r1 > @@ -250,7 +250,7 @@ linux_gateway_entry: > ldo R%sys_call_table64(%r1), %r19 > #else > load32 sys_call_table, %r19 > -#endif > +#endif > comiclr,>> __NR_Linux_syscalls, %r20, %r0 > b,n .Lsyscall_nosys > > @@ -374,7 +374,7 @@ tracesys_next: > /* Note! We cannot use the syscall table that is mapped > nearby since the gateway page is mapped execute-only. */ > > -#ifdef CONFIG_64BIT > +#if defined(CONFIG_64BIT) && defined(CONFIG_COMPAT) > LDREG TASK_PT_GR30(%r1), %r19 /* get users sp back */ > extrd,u %r19,63,1,%r2 /* W hidden in bottom bit */ > > @@ -1326,16 +1326,19 @@ ENTRY(lws_table) > END(lws_table) > /* End of lws table */ > > -#ifdef CONFIG_64BIT > +#ifdef CONFIG_COMPAT > #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, compat) > #else > #define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) > #endif > #define __SYSCALL(nr, entry) ASM_ULONG_INSN entry > + > .align 8 > ENTRY(sys_call_table) > .export sys_call_table,data > +#if defined(CONFIG_COMPAT) || !defined(CONFIG_64BIT) > #include <asm/syscall_table_32.h> /* 32-bit syscalls */ > +#endif > END(sys_call_table) > > #ifdef CONFIG_64BIT > -- > 2.53.0 > >