diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index 441bc057896f..97b58c51dcc2 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -452,8 +452,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);