On Mon, Dec 18, 2017 at 7:46 AM, Greentime Hu <green.hu@xxxxxxxxx> wrote: > new file mode 100644 > index 0000000..90da745 > --- /dev/null > +++ b/arch/nds32/include/uapi/asm/unistd.h > @@ -0,0 +1,12 @@ > +// SPDX-License-Identifier: GPL-2.0 > +// Copyright (C) 2005-2017 Andes Technology Corporation > + > +#define __ARCH_WANT_SYNC_FILE_RANGE2 > + > +/* Use the standard ABI for syscalls */ > +#include <asm-generic/unistd.h> > + > +/* Additional NDS32 specific syscalls. */ > +#define __NR_cacheflush (__NR_arch_specific_syscall) > +#define __NR__llseek __NR_llseek > +__SYSCALL(__NR_cacheflush, sys_cacheflush) I'm still confused by __NR__llseek here, why do you need that one? > +SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, > + unsigned long, prot, unsigned long, flags, > + unsigned long, fd, unsigned long, pgoff) > +{ > + if (pgoff & (~PAGE_MASK >> 12)) > + return -EINVAL; > + > + return sys_mmap_pgoff(addr, len, prot, flags, fd, > + pgoff >> (PAGE_SHIFT - 12)); > +} > + > +SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len, > + unsigned long, prot, unsigned long, flags, > + unsigned long, fd, unsigned long, pgoff) > +{ > + if (unlikely(pgoff & ~PAGE_MASK)) > + return -EINVAL; > + > + return sys_mmap_pgoff(addr, len, prot, flags, fd, > + pgoff >> PAGE_SHIFT); > +} And I don't see why you define sys_mmap() in addition to sys_mmap2(). The rest of the syscall handling looks good now. Arnd