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.carpen...@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<---
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to