virtio: use virtio_device_ready() in virtio_device_restore()
authorStefano Garzarella <sgarzare@redhat.com>
Fri, 27 May 2022 06:01:12 +0000 (14:01 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 31 May 2022 16:45:09 +0000 (12:45 -0400)
It will allow us to do extension on virtio_device_ready() without
duplicating code.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Halil Pasic <pasic@linux.ibm.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Vineeth Vijayan <vneethv@linux.ibm.com>
Cc: Peter Oberparleiter <oberpar@linux.ibm.com>
Cc: linux-s390@vger.kernel.org
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20220527060120.20964-2-jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
drivers/virtio/virtio.c

index ce424c16997dd632e4ecb6d8ebea6664fc6cd4ee..938e975029d43d72abe6bd9985f2ab52af9ea1e6 100644 (file)
@@ -526,8 +526,9 @@ int virtio_device_restore(struct virtio_device *dev)
                        goto err;
        }
 
-       /* Finally, tell the device we're all set */
-       virtio_add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
+       /* If restore didn't do it, mark device DRIVER_OK ourselves. */
+       if (!(dev->config->get_status(dev) & VIRTIO_CONFIG_S_DRIVER_OK))
+               virtio_device_ready(dev);
 
        virtio_config_enable(dev);