Stilll no input FIXME
---
 drivers/char/virtio_console.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -126,8 +126,14 @@ static int get_chars(u32 vtermno, char *
 
 	/* No more in buffer?  See if they've (re)used it. */
 	if (port->offset == port->used_len) {
-		if (!port->in_vq->vq_ops->get_buf(port->in_vq, &port->used_len))
+		unsigned int len;
+
+		if (!port->in_vq->vq_ops->get_buf(port->in_vq, &len)) {
+			printk("No buffer...\n");
 			return 0;
+		}
+		printk("Got buffer %u bytes...\n", len);
+		port->used_len = len;
 		port->offset = 0;
 	}
 
@@ -141,6 +147,7 @@ static int get_chars(u32 vtermno, char *
 
 	/* Finished?  Re-register buffer so Host will use it again. */
 	if (port->offset == port->used_len) {
+		printk("Readding buffer after %u bytes...\n", port->offset);
 		/* Should always be able to add one buffer to an empty queue. */
 		if (add_inbuf(port) < 0)
 			BUG();
@@ -235,6 +242,7 @@ static struct ports *__devinit alloc_por
 	ports->num_ports = num;
 	for (i = 0; i < ports->num_ports; i++) {
 		ports->port[i].used_len = 0;
+		ports->port[i].offset = 0;
 		ports->port[i].inbuf = kmalloc(PAGE_SIZE, GFP_KERNEL);
 		if (unlikely(!ports->port[i].inbuf)) {
 			while (--i >= 0)
