Commit 25cf84cf authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console

* git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console:
  virtio: console: Use better variable names for fill_queue operation
  virtio: console: Fix type of 'len' as unsigned int
parents 322aafa6 335a64a5
...@@ -379,7 +379,7 @@ static ssize_t send_control_msg(struct port *port, unsigned int event, ...@@ -379,7 +379,7 @@ static ssize_t send_control_msg(struct port *port, unsigned int event,
struct scatterlist sg[1]; struct scatterlist sg[1];
struct virtio_console_control cpkt; struct virtio_console_control cpkt;
struct virtqueue *vq; struct virtqueue *vq;
int len; unsigned int len;
if (!use_multiport(port->portdev)) if (!use_multiport(port->portdev))
return 0; return 0;
...@@ -1071,27 +1071,27 @@ static void config_intr(struct virtio_device *vdev) ...@@ -1071,27 +1071,27 @@ static void config_intr(struct virtio_device *vdev)
static unsigned int fill_queue(struct virtqueue *vq, spinlock_t *lock) static unsigned int fill_queue(struct virtqueue *vq, spinlock_t *lock)
{ {
struct port_buffer *buf; struct port_buffer *buf;
unsigned int ret; unsigned int nr_added_bufs;
int err; int ret;
ret = 0; nr_added_bufs = 0;
do { do {
buf = alloc_buf(PAGE_SIZE); buf = alloc_buf(PAGE_SIZE);
if (!buf) if (!buf)
break; break;
spin_lock_irq(lock); spin_lock_irq(lock);
err = add_inbuf(vq, buf); ret = add_inbuf(vq, buf);
if (err < 0) { if (ret < 0) {
spin_unlock_irq(lock); spin_unlock_irq(lock);
free_buf(buf); free_buf(buf);
break; break;
} }
ret++; nr_added_bufs++;
spin_unlock_irq(lock); spin_unlock_irq(lock);
} while (err > 0); } while (ret > 0);
return ret; return nr_added_bufs;
} }
static int add_port(struct ports_device *portdev, u32 id) static int add_port(struct ports_device *portdev, u32 id)
...@@ -1100,6 +1100,7 @@ static int add_port(struct ports_device *portdev, u32 id) ...@@ -1100,6 +1100,7 @@ static int add_port(struct ports_device *portdev, u32 id)
struct port *port; struct port *port;
struct port_buffer *buf; struct port_buffer *buf;
dev_t devt; dev_t devt;
unsigned int nr_added_bufs;
int err; int err;
port = kmalloc(sizeof(*port), GFP_KERNEL); port = kmalloc(sizeof(*port), GFP_KERNEL);
...@@ -1144,8 +1145,8 @@ static int add_port(struct ports_device *portdev, u32 id) ...@@ -1144,8 +1145,8 @@ static int add_port(struct ports_device *portdev, u32 id)
init_waitqueue_head(&port->waitqueue); init_waitqueue_head(&port->waitqueue);
/* Fill the in_vq with buffers so the host can send us data. */ /* Fill the in_vq with buffers so the host can send us data. */
err = fill_queue(port->in_vq, &port->inbuf_lock); nr_added_bufs = fill_queue(port->in_vq, &port->inbuf_lock);
if (!err) { if (!nr_added_bufs) {
dev_err(port->dev, "Error allocating inbufs\n"); dev_err(port->dev, "Error allocating inbufs\n");
err = -ENOMEM; err = -ENOMEM;
goto free_device; goto free_device;
...@@ -1442,12 +1443,14 @@ static int __devinit virtcons_probe(struct virtio_device *vdev) ...@@ -1442,12 +1443,14 @@ static int __devinit virtcons_probe(struct virtio_device *vdev)
INIT_LIST_HEAD(&portdev->ports); INIT_LIST_HEAD(&portdev->ports);
if (multiport) { if (multiport) {
unsigned int nr_added_bufs;
spin_lock_init(&portdev->cvq_lock); spin_lock_init(&portdev->cvq_lock);
INIT_WORK(&portdev->control_work, &control_work_handler); INIT_WORK(&portdev->control_work, &control_work_handler);
INIT_WORK(&portdev->config_work, &config_work_handler); INIT_WORK(&portdev->config_work, &config_work_handler);
err = fill_queue(portdev->c_ivq, &portdev->cvq_lock); nr_added_bufs = fill_queue(portdev->c_ivq, &portdev->cvq_lock);
if (!err) { if (!nr_added_bufs) {
dev_err(&vdev->dev, dev_err(&vdev->dev,
"Error allocating buffers for control queue\n"); "Error allocating buffers for control queue\n");
err = -ENOMEM; err = -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment