On Tue, Dec 21, 2021 at 5:35 PM <guoren@xxxxxxxxxx> wrote: > > From: Guo Ren <guoren@xxxxxxxxxxxxxxxxx> > > Implement compat_syscall_table.c with compat_sys_call_table & fixup > system call such as truncate64,pread64,fallocate which need two > regs to indicate 64bit-arg (copied from arm64). > > Signed-off-by: Guo Ren <guoren@xxxxxxxxxxxxxxxxx> > --- > arch/riscv/include/asm/syscall.h | 3 + > arch/riscv/kernel/compat_syscall_table.c | 84 ++++++++++++++++++++++++ Same here, I think most of these should go next to the actual syscalls, with the duplicates removed from other platforms, > +#define __SYSCALL_COMPAT > +#undef __LP64__ What is the #undef for? > +SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, > + unsigned long, prot, unsigned long, flags, > + unsigned long, fd, unsigned long, offset) > +{ > + if ((prot & PROT_WRITE) && (prot & PROT_EXEC)) > + if (unlikely(!(prot & PROT_READ))) > + return -EINVAL; > + > + return ksys_mmap_pgoff(addr, len, prot, flags, fd, offset); > +} This is one that we may have to deal with separately, introducing sys_mmap_pgoff() was a mistake in my opinion, and we should just have added a sys_mmap2() for all architectures that don't explicitly override it. Arnd