virtualization.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [patch] virtio_balloon: unlock on error in fill_balloon()
@ 2012-11-13  7:43 Dan Carpenter
  2012-11-13 14:28 ` Rafael Aquini
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2012-11-13  7:43 UTC (permalink / raw)
  To: Rusty Russell, Rafael Aquini
  Cc: virtualization, kernel-janitors, Michael S. Tsirkin

We recently added locking in fill_balloon() but there was one error path
which was missed.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
Only needed in linux-next.

diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index f70151b..1c50e98 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -153,9 +153,10 @@ static void fill_balloon(struct virtio_balloon *vb, size_t num)
 
 	/* Didn't get any?  Oh well. */
 	if (vb->num_pfns == 0)
-		return;
+		goto unlock;
 
 	tell_host(vb, vb->inflate_vq);
+unlock:
 	mutex_unlock(&vb->balloon_lock);
 }

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [patch] virtio_balloon: unlock on error in fill_balloon()
  2012-11-13  7:43 [patch] virtio_balloon: unlock on error in fill_balloon() Dan Carpenter
@ 2012-11-13 14:28 ` Rafael Aquini
  0 siblings, 0 replies; 2+ messages in thread
From: Rafael Aquini @ 2012-11-13 14:28 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: kernel-janitors, virtualization, Michael S. Tsirkin

On Tue, Nov 13, 2012 at 10:43:03AM +0300, Dan Carpenter wrote:
> We recently added locking in fill_balloon() but there was one error path
> which was missed.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> Only needed in linux-next.
> 
> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
> index f70151b..1c50e98 100644
> --- a/drivers/virtio/virtio_balloon.c
> +++ b/drivers/virtio/virtio_balloon.c
> @@ -153,9 +153,10 @@ static void fill_balloon(struct virtio_balloon *vb, size_t num)
>  
>  	/* Didn't get any?  Oh well. */
>  	if (vb->num_pfns == 0)
> -		return;
> +		goto unlock;
>  
>  	tell_host(vb, vb->inflate_vq);
> +unlock:
>  	mutex_unlock(&vb->balloon_lock);
>  }
>
Thanks for the catch Dan. 

Andrew has already picked a slightly different (and simpler) fix for this one,
though.

---8<---
a/drivers/virtio/virtio_balloon.c~virtio_balloon-introduce-migration-primitives-to-balloon-pages-fix-fix
+++ a/drivers/virtio/virtio_balloon.c
@@ -151,13 +151,9 @@ static void fill_balloon(struct virtio_b
                totalram_pages--;
       	}

-	/* Didn't get any?  Oh well. */
-	if (vb->num_pfns == 0) {
-               mutex_unlock(&vb->balloon_lock);
-               return;
-	}
-
-	tell_host(vb, vb->inflate_vq);
+	/* Did we get any? */
+	if (vb->num_pfns != 0)
+               tell_host(vb, vb->inflate_vq);
        mutex_unlock(&vb->balloon_lock);
 }
---8<---

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-11-13 14:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-13  7:43 [patch] virtio_balloon: unlock on error in fill_balloon() Dan Carpenter
2012-11-13 14:28 ` Rafael Aquini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).