diff options
Diffstat (limited to 'drivers/vhost/vringh.c')
| -rw-r--r-- | drivers/vhost/vringh.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c index 1778eff7ab00..925858cc6096 100644 --- a/drivers/vhost/vringh.c +++ b/drivers/vhost/vringh.c @@ -1115,6 +1115,7 @@ static inline int copy_from_iotlb(const struct vringh *vrh, void *dst,  		struct iov_iter iter;  		u64 translated;  		int ret; +		size_t size;  		ret = iotlb_translate(vrh, (u64)(uintptr_t)src,  				      len - total_translated, &translated, @@ -1132,9 +1133,9 @@ static inline int copy_from_iotlb(const struct vringh *vrh, void *dst,  				      translated);  		} -		ret = copy_from_iter(dst, translated, &iter); -		if (ret < 0) -			return ret; +		size = copy_from_iter(dst, translated, &iter); +		if (size != translated) +			return -EFAULT;  		src += translated;  		dst += translated;  | 
