Patchwork [3.5.y.z,extended,stable] Patch "vhost: fix length for cross region descriptor" has been added to staging queue

mail settings
Submitter Luis Henriques
Date March 5, 2013, 6:51 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/225160/
State New
Headers show


Luis Henriques - March 5, 2013, 6:51 p.m.
This is a note to let you know that I have just added a patch titled

    vhost: fix length for cross region descriptor

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 192ee54c36212e0dd76988bdda4c0b0afd605c29 Mon Sep 17 00:00:00 2001
From: "Michael S. Tsirkin" <>
Date: Mon, 26 Nov 2012 05:57:27 +0000
Subject: [PATCH] vhost: fix length for cross region descriptor

commit bd97120fc3d1a11f3124c7c9ba1d91f51829eb85 upstream.

If a single descriptor crosses a region, the
second chunk length should be decremented
by size translated so far, instead it includes
the full descriptor length.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Jason Wang <>
Signed-off-by: David S. Miller <>
Signed-off-by: Luis Henriques <>
 drivers/vhost/vhost.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 112156f..6da514b 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -1077,7 +1077,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;