From: Rusty Russell <rusty@rustcorp.com.au>
Date: Tue, 17 Feb 2015 05:42:44 +0000 (+1030)
Subject: virtio: don't set VIRTIO_CONFIG_S_DRIVER_OK twice.
X-Git-Tag: firefly_0821_release~176^2~2282^2
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5b40a7daf51812b35cf05d1601a779a7043f8414;p=firefly-linux-kernel-4.4.55.git

virtio: don't set VIRTIO_CONFIG_S_DRIVER_OK twice.

I noticed this with the console device.  It's not *wrong*, just a bit
weird.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---

diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index b9f70dfc4751..5ce2aa48fc6e 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -236,7 +236,10 @@ static int virtio_dev_probe(struct device *_d)
 	if (err)
 		goto err;
 
-	add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
+	/* If probe didn't do it, mark device DRIVER_OK ourselves. */
+	if (!(dev->config->get_status(dev) & VIRTIO_CONFIG_S_DRIVER_OK))
+		virtio_device_ready(dev);
+
 	if (drv->scan)
 		drv->scan(dev);