summaryrefslogtreecommitdiffstats
path: root/drivers/virtio/virtio_balloon.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2015-03-05 13:24:41 +1030
committerRusty Russell <rusty@rustcorp.com.au>2015-03-10 11:48:28 +1030
commit88660f7fb94cda1f8f63ee92bfcd0db39a6361e2 (patch)
treedb1aef23fcc5c191a3b4fc1255aee5d46b50558f /drivers/virtio/virtio_balloon.c
parenteeb8a7e8bb123e84daeef84f5a2eab99ad2839a2 (diff)
downloadlinux-88660f7fb94cda1f8f63ee92bfcd0db39a6361e2.tar.gz
linux-88660f7fb94cda1f8f63ee92bfcd0db39a6361e2.tar.bz2
linux-88660f7fb94cda1f8f63ee92bfcd0db39a6361e2.zip
virtio_balloon: set DRIVER_OK before using device
virtio spec requires that all drivers set DRIVER_OK before using devices. While balloon isn't yet included in the virtio 1 spec, previous spec versions also required this. virtio balloon might violate this rule: probe calls kthread_run before setting DRIVER_OK, which might run immediately and cause balloon to inflate/deflate. To fix, call virtio_device_ready before running the kthread. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: stable@kernel.org
Diffstat (limited to 'drivers/virtio/virtio_balloon.c')
-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 0413157f3b49..b36fe56677d5 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -499,6 +499,8 @@ static int virtballoon_probe(struct virtio_device *vdev)
if (err < 0)
goto out_oom_notify;
+ virtio_device_ready(vdev);
+
vb->thread = kthread_run(balloon, vb, "vballoon");
if (IS_ERR(vb->thread)) {
err = PTR_ERR(vb->thread);