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.18.12~52 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2e7822fa339137f9db66d591cf099fa3525a8e5f;p=profile%2Fwearable%2Fplatform%2Fkernel%2Flinux-3.18-exynos7270.git virtio_balloon: set DRIVER_OK before using device [ Upstream commit 88660f7fb94cda1f8f63ee92bfcd0db39a6361e2 ] 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 Cc: stable@kernel.org Signed-off-by: Sasha Levin --- diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index c9703d4..cd56c64 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -443,6 +443,8 @@ static int virtballoon_probe(struct virtio_device *vdev) if (err) goto out_free_vb; + virtio_device_ready(vdev); + vb->thread = kthread_run(balloon, vb, "vballoon"); if (IS_ERR(vb->thread)) { err = PTR_ERR(vb->thread);