mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
iov_iter: transparently handle compat iovecs in import_iovec
Use in compat_syscall to import either native or the compat iovecs, and remove the now superflous compat_import_iovec. This removes the need for special compat logic in most callers, and the remaining ones can still be simplified by using __import_iovec with a bool compat parameter. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
committed by
Al Viro
parent
bfdc59701d
commit
89cd35c58b
@@ -1806,21 +1806,11 @@ ssize_t import_iovec(int type, const struct iovec __user *uvec,
|
||||
unsigned nr_segs, unsigned fast_segs,
|
||||
struct iovec **iovp, struct iov_iter *i)
|
||||
{
|
||||
return __import_iovec(type, uvec, nr_segs, fast_segs, iovp, i, false);
|
||||
return __import_iovec(type, uvec, nr_segs, fast_segs, iovp, i,
|
||||
in_compat_syscall());
|
||||
}
|
||||
EXPORT_SYMBOL(import_iovec);
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
ssize_t compat_import_iovec(int type, const struct compat_iovec __user *uvec,
|
||||
unsigned nr_segs, unsigned fast_segs, struct iovec **iovp,
|
||||
struct iov_iter *i)
|
||||
{
|
||||
return __import_iovec(type, (const struct iovec __user *)uvec, nr_segs,
|
||||
fast_segs, iovp, i, true);
|
||||
}
|
||||
EXPORT_SYMBOL(compat_import_iovec);
|
||||
#endif
|
||||
|
||||
int import_single_range(int rw, void __user *buf, size_t len,
|
||||
struct iovec *iov, struct iov_iter *i)
|
||||
{
|
||||
|
Reference in New Issue
Block a user