From: Michael S. Tsirkin Date: Thu, 5 Mar 2015 02:54:41 +0000 (+1030) Subject: virtio_balloon: set DRIVER_OK before using device X-Git-Tag: v3.19.4~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=757fd0d78d090eb2518b09a5903d312e3955c08d;p=thirdparty%2Fkernel%2Fstable.git virtio_balloon: set DRIVER_OK before using device commit 88660f7fb94cda1f8f63ee92bfcd0db39a6361e2 upstream. 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 Signed-off-by: Rusty Russell Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 50c5f42d7a9f3..8a969320ad423 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -494,6 +494,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);