> > 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.
The functions adding requests to the virtio rings use drm_dev_enter+drm_dev_exit already. take care, Gerd