Re: [PATCH v4 16/36] nds32: System calls handling
From: Vincent Chen <hidden>
Date: 2017-12-19 02:10:14
Also in:
linux-arch, linux-serial, lkml, netdev
2017-12-18 19:19 GMT+08:00 Arnd Bergmann [off-list ref]:
On Mon, Dec 18, 2017 at 7:46 AM, Greentime Hu [off-list ref] wrote:quoted
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.
quoted
+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.
ArndThanks Vincent -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html