Hi

Am 16.04.25 um 15:57 schrieb Gerd Hoffmann:
On Tue, Apr 15, 2025 at 10:00:48AM -0400, Michael S. Tsirkin wrote:
On Tue, Apr 15, 2025 at 01:16:32PM +0200, Gerd Hoffmann wrote:
   Hi,

+static void virtio_gpu_shutdown(struct virtio_device *vdev)
+{
+       /*
+        * drm does its own synchronization on shutdown.
+        * Do nothing here, opt out of device reset.
+        */
I think a call to 'drm_dev_unplug()' is what you need here.

take care,
   Gerd
My patch reverts the behaviour back to what it was, so pls go
ahead and send a patch on top? I won't be able to explain
what it does and why it's needed.
See below.  Untested.

Eric, can you give this a spin?

thanks,
   Gerd

----------------------- cut here -------------------------------
 From f3051dd52cb2004232941e6d2cbc0c694e290534 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kra...@redhat.com>
Date: Wed, 16 Apr 2025 15:53:04 +0200
Subject: [PATCH] drm/virtio: implement virtio_gpu_shutdown

Calling drm_dev_unplug() is the drm way to say the device
is gone and can not be accessed any more.

Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
---
  drivers/gpu/drm/virtio/virtgpu_drv.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c 
b/drivers/gpu/drm/virtio/virtgpu_drv.c
index e32e680c7197..71c6ccad4b99 100644
--- a/drivers/gpu/drm/virtio/virtgpu_drv.c
+++ b/drivers/gpu/drm/virtio/virtgpu_drv.c
@@ -130,10 +130,10 @@ static void virtio_gpu_remove(struct virtio_device *vdev)
static void virtio_gpu_shutdown(struct virtio_device *vdev)
  {
-       /*
-        * drm does its own synchronization on shutdown.
-        * Do nothing here, opt out of device reset.
-        */
+       struct drm_device *dev = vdev->priv;
+
+       /* stop talking to the device */
+       drm_dev_unplug(dev);
  }

It's the correct approach but also requires drm_dev_enter() and drm_dev_exit() around all of the driver's hardware access.

Best regards
Thomas

static void virtio_gpu_config_changed(struct virtio_device *vdev)

--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)


Reply via email to