]> Pileus Git - ~andy/linux/blobdiff - drivers/vhost/vhost.c
vhost: fix length for cross region descriptor
[~andy/linux] / drivers / vhost / vhost.c
index 99ac2cb08b43bcb3b570969d752bff25126f298d..dedaf81d8f36fd89a5258d9a21fd261401f6e0d9 100644 (file)
@@ -1076,7 +1076,7 @@ static int translate_desc(struct vhost_dev *dev, u64 addr, u32 len,
                }
                _iov = iov + ret;
                size = reg->memory_size - addr + reg->guest_phys_addr;
-               _iov->iov_len = min((u64)len, size);
+               _iov->iov_len = min((u64)len - s, size);
                _iov->iov_base = (void __user *)(unsigned long)
                        (reg->userspace_addr + addr - reg->guest_phys_addr);
                s += size;