Thread (43 messages) 43 messages, 4 authors, 2022-02-01

Re: [PATCH V4 08/17] riscv: compat: syscall: Add compat_sys_call_table implementation

From: Arnd Bergmann <arnd@arndb.de>
Date: 2022-01-29 22:42:31
Also in: linux-arch, linux-arm-kernel, linux-mips, linux-riscv, linux-s390, lkml, sparclinux

Implement compat sys_call_table and some system call functions:
truncate64, ftruncate64, fallocate, pread64, pwrite64,
sync_file_range, readahead, fadvise64_64 which need argument
translation.

Signed-off-by: Guo Ren <redacted>
Signed-off-by: Guo Ren <guoren@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
This all looks really good, but I would change one detail:
+#ifndef compat_arg_u64
+#define compat_arg_u64(name)           u32  name##_lo, u32  name##_hi
+#define compat_arg_u64_dual(name)      u32, name##_lo, u32, name##_hi
+#define compat_arg_u64_glue(name)      (((u64)name##_hi << 32) | \
+                                        ((u64)name##_lo & 0xffffffffUL))
+#endif
I would make these endian-specific, and reverse them on big-endian
architectures. That way it
should be possible to share them across all compat architectures
without needing the override
option.

        Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help