mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-07-01 23:53:16 -04:00
Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull compat iovec cleanups from Al Viro: "Christoph's series around import_iovec() and compat variant thereof" * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: security/keys: remove compat_keyctl_instantiate_key_iov mm: remove compat_process_vm_{readv,writev} fs: remove compat_sys_vmsplice fs: remove the compat readv/writev syscalls fs: remove various compat readv/writev helpers iov_iter: transparently handle compat iovecs in import_iovec iov_iter: refactor rw_copy_check_uvector and import_iovec iov_iter: move rw_copy_check_uvector() into lib/iov_iter.c compat.h: fix a spelling error in <linux/compat.h>
This commit is contained in:
commit
85ed13e78d
30 changed files with 300 additions and 716 deletions
|
@ -91,6 +91,11 @@
|
|||
static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
|
||||
#endif /* COMPAT_SYSCALL_DEFINEx */
|
||||
|
||||
struct compat_iovec {
|
||||
compat_uptr_t iov_base;
|
||||
compat_size_t iov_len;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
|
||||
#ifndef compat_user_stack_pointer
|
||||
|
@ -248,11 +253,6 @@ typedef struct compat_siginfo {
|
|||
} _sifields;
|
||||
} compat_siginfo_t;
|
||||
|
||||
struct compat_iovec {
|
||||
compat_uptr_t iov_base;
|
||||
compat_size_t iov_len;
|
||||
};
|
||||
|
||||
struct compat_rlimit {
|
||||
compat_ulong_t rlim_cur;
|
||||
compat_ulong_t rlim_max;
|
||||
|
@ -451,12 +451,6 @@ extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
|||
|
||||
struct epoll_event; /* fortunately, this one is fixed-layout */
|
||||
|
||||
extern ssize_t compat_rw_copy_check_uvector(int type,
|
||||
const struct compat_iovec __user *uvector,
|
||||
unsigned long nr_segs,
|
||||
unsigned long fast_segs, struct iovec *fast_pointer,
|
||||
struct iovec **ret_pointer);
|
||||
|
||||
extern void __user *compat_alloc_user_space(unsigned long len);
|
||||
|
||||
int compat_restore_altstack(const compat_stack_t __user *uss);
|
||||
|
@ -551,26 +545,22 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
|
|||
|
||||
/* fs/read_write.c */
|
||||
asmlinkage long compat_sys_lseek(unsigned int, compat_off_t, unsigned int);
|
||||
asmlinkage ssize_t compat_sys_readv(compat_ulong_t fd,
|
||||
const struct compat_iovec __user *vec, compat_ulong_t vlen);
|
||||
asmlinkage ssize_t compat_sys_writev(compat_ulong_t fd,
|
||||
const struct compat_iovec __user *vec, compat_ulong_t vlen);
|
||||
/* No generic prototype for pread64 and pwrite64 */
|
||||
asmlinkage ssize_t compat_sys_preadv(compat_ulong_t fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
compat_ulong_t vlen, u32 pos_low, u32 pos_high);
|
||||
asmlinkage ssize_t compat_sys_pwritev(compat_ulong_t fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
compat_ulong_t vlen, u32 pos_low, u32 pos_high);
|
||||
#ifdef __ARCH_WANT_COMPAT_SYS_PREADV64
|
||||
asmlinkage long compat_sys_preadv64(unsigned long fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
unsigned long vlen, loff_t pos);
|
||||
#endif
|
||||
|
||||
#ifdef __ARCH_WANT_COMPAT_SYS_PWRITEV64
|
||||
asmlinkage long compat_sys_pwritev64(unsigned long fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
unsigned long vlen, loff_t pos);
|
||||
#endif
|
||||
|
||||
|
@ -607,10 +597,6 @@ asmlinkage long compat_sys_signalfd4(int ufd,
|
|||
const compat_sigset_t __user *sigmask,
|
||||
compat_size_t sigsetsize, int flags);
|
||||
|
||||
/* fs/splice.c */
|
||||
asmlinkage long compat_sys_vmsplice(int fd, const struct compat_iovec __user *,
|
||||
unsigned int nr_segs, unsigned int flags);
|
||||
|
||||
/* fs/stat.c */
|
||||
asmlinkage long compat_sys_newfstatat(unsigned int dfd,
|
||||
const char __user *filename,
|
||||
|
@ -794,32 +780,24 @@ asmlinkage long compat_sys_open_by_handle_at(int mountdirfd,
|
|||
int flags);
|
||||
asmlinkage long compat_sys_sendmmsg(int fd, struct compat_mmsghdr __user *mmsg,
|
||||
unsigned vlen, unsigned int flags);
|
||||
asmlinkage ssize_t compat_sys_process_vm_readv(compat_pid_t pid,
|
||||
const struct compat_iovec __user *lvec,
|
||||
compat_ulong_t liovcnt, const struct compat_iovec __user *rvec,
|
||||
compat_ulong_t riovcnt, compat_ulong_t flags);
|
||||
asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid,
|
||||
const struct compat_iovec __user *lvec,
|
||||
compat_ulong_t liovcnt, const struct compat_iovec __user *rvec,
|
||||
compat_ulong_t riovcnt, compat_ulong_t flags);
|
||||
asmlinkage long compat_sys_execveat(int dfd, const char __user *filename,
|
||||
const compat_uptr_t __user *argv,
|
||||
const compat_uptr_t __user *envp, int flags);
|
||||
asmlinkage ssize_t compat_sys_preadv2(compat_ulong_t fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
compat_ulong_t vlen, u32 pos_low, u32 pos_high, rwf_t flags);
|
||||
asmlinkage ssize_t compat_sys_pwritev2(compat_ulong_t fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
compat_ulong_t vlen, u32 pos_low, u32 pos_high, rwf_t flags);
|
||||
#ifdef __ARCH_WANT_COMPAT_SYS_PREADV64V2
|
||||
asmlinkage long compat_sys_readv64v2(unsigned long fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
asmlinkage long compat_sys_preadv64v2(unsigned long fd,
|
||||
const struct iovec __user *vec,
|
||||
unsigned long vlen, loff_t pos, rwf_t flags);
|
||||
#endif
|
||||
|
||||
#ifdef __ARCH_WANT_COMPAT_SYS_PWRITEV64V2
|
||||
asmlinkage long compat_sys_pwritev64v2(unsigned long fd,
|
||||
const struct compat_iovec __user *vec,
|
||||
const struct iovec __user *vec,
|
||||
unsigned long vlen, loff_t pos, rwf_t flags);
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue