On Mon, Jan 28, 2019 at 6:57 AM Christoph Hellwig <hch@xxxxxx> wrote: > > [please make sure linux-api and linux-man are CCed on new syscalls > so that we get API experts to review them] > > +static int io_import_iovec(struct io_ring_ctx *ctx, int rw, > > + const struct io_uring_sqe *sqe, > > + struct iovec **iovec, struct iov_iter *iter) > > +{ > > + void __user *buf = u64_to_user_ptr(sqe->addr); > > + > > +#ifdef CONFIG_COMPAT > > + if (ctx->compat) > > + return compat_import_iovec(rw, buf, sqe->len, UIO_FASTIOV, > > + iovec, iter); > > +#endif > > I think we can just check in_compat_syscall() here, which means we > can kill the ->compat member, and the separate compat version of the > setup syscall. > Since this whole API is new, I don't suppose you could introduce a struct iovec64 or similar and just make the ABI be identical for 64-bit and 32-bit code? --Andy