2017-12-18 19:19 GMT+08:00 Arnd Bergmann <arnd@xxxxxxxx>: > 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? > Dear Arnd: We hoped to solve ABI register alignment problem for llseek in glibc by __NR__llseek. After checking glibc again, I find glibc has same __NR__llseek macro and It's better to solve this problem. So, I will remove this definition in the next version patch. >> +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(). > This is my mistake. I will remove it in the next version patch. > The rest of the syscall handling looks good now. > > Arnd Thanks Vincent