From: Amit Shah Date: Wed, 20 Oct 2010 03:15:43 +0000 (+1030) Subject: virtio: console: Don't block entire guest if host doesn't read data X-Git-Tag: v2.6.36~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=531295e63be8c2b8b909d7400739e8b8df60d61f;p=pandora-kernel.git virtio: console: Don't block entire guest if host doesn't read data If the host is slow in reading data or doesn't read data at all, blocking write calls not only blocked the program that called write() but the entire guest itself. To overcome this, let's not block till the host signals it has given back the virtio ring element we passed it. Instead, send the buffer to the host and return to userspace. This operation then becomes similar to how non-blocking writes work, so let's use the existing code for this path as well. This code change also ensures blocking write calls do get blocked if there's not enough room in the virtio ring as well as they don't return -EAGAIN to userspace. Signed-off-by: Amit Shah Acked-by: Hans de Goede CC: stable@kernel.org Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed