Messages in this thread | | | Date | Thu, 7 Apr 2022 14:19:00 +0800 | Subject | Re: [PATCH V2 1/5] virtio: use virtio_device_ready() in virtio_device_restore() | From | Jason Wang <> |
| |
在 2022/4/6 下午7:44, Michael S. Tsirkin 写道: > patch had wrong mime type. I managed to extra it but pls fix. > >> >> From: Stefano Garzarella <sgarzare@redhat.com> >> >> It will allows us > will allow us > >> to do extension on virtio_device_ready() without >> duplicating codes. > 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> >> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> >> Signed-off-by: Jason Wang <jasowang@redhat.com> >> --- >> drivers/virtio/virtio.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c >> index 22f15f444f75..75c8d560bbd3 100644 >> --- a/drivers/virtio/virtio.c >> +++ b/drivers/virtio/virtio.c >> @@ -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); > it's unfortunate that this adds an extra vmexit since virtio_device_ready > calls get_status too. > > We now have: > > static inline > void virtio_device_ready(struct virtio_device *dev) > { > unsigned status = dev->config->get_status(dev); > > BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); > dev->config->set_status(dev, status | VIRTIO_CONFIG_S_DRIVER_OK); > } > > > I propose adding a helper and putting common code there.
Ok, let me fix it.
Thanks
> >> >> -- >> 2.25.1
| |