copy_compat_iovec_from_user() only do unsafe_get_user(), it only requires read access. Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxxxxxx> --- Resending with mm list in addition lib/iov_iter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/iov_iter.c b/lib/iov_iter.c index 61228a6c69f8..fd9bd229d51d 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -1932,7 +1932,7 @@ static int copy_compat_iovec_from_user(struct iovec *iov, (const struct compat_iovec __user *)uvec; int ret = -EFAULT, i; - if (!user_access_begin(uiov, nr_segs * sizeof(*uiov))) + if (!user_read_access_begin(uiov, nr_segs * sizeof(*uiov))) return -EFAULT; for (i = 0; i < nr_segs; i++) { @@ -1953,7 +1953,7 @@ static int copy_compat_iovec_from_user(struct iovec *iov, ret = 0; uaccess_end: - user_access_end(); + user_read_access_end(); return ret; } -- 2.25.0