summaryrefslogtreecommitdiffstats
path: root/drivers/virtio
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2014-10-15 01:52:33 +0200
committerRusty Russell <rusty@rustcorp.com.au>2014-10-15 01:55:13 +0200
commit486d2e632ca157558a738626c092973f309f3b45 (patch)
treef8682be9d436c63e56a207e17c270a787ae05515 /drivers/virtio
parentvirtio_scsi: fix race on device removal (diff)
downloadlinux-486d2e632ca157558a738626c092973f309f3b45.tar.xz
linux-486d2e632ca157558a738626c092973f309f3b45.zip
virtio_balloon: enable VQs early on restore
virtio spec requires drivers to set DRIVER_OK before using VQs. This is set automatically after resume returns, virtio balloon violated this rule by adding bufs, which causes the VQ to be used directly within restore. To fix, call virtio_device_ready before using VQ. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/virtio')
-rw-r--r--drivers/virtio/virtio_balloon.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 25ebe8eecdb7..f4a28af4865e 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -538,6 +538,8 @@ static int virtballoon_restore(struct virtio_device *vdev)
if (ret)
return ret;
+ virtio_device_ready(vdev);
+
fill_balloon(vb, towards_target(vb));
update_balloon_size(vb);
return 0;