On Wed, Apr 01, 2015 at 03:15:29PM +0200, Gerd Hoffmann wrote:
+int virtio_gpu_driver_unload(struct drm_device *dev) +{
- struct virtio_gpu_device *vgdev = dev->dev_private;
- vgdev->vqs_ready = false;
Probably ok since flush below will sync all cpus, but this needs a comment I think.
- flush_work(&vgdev->ctrlq.dequeue_work);
- flush_work(&vgdev->cursorq.dequeue_work);
I see there are a bunch of other work entries - don't all of them need to be flushed?
- vgdev->vdev->config->del_vqs(vgdev->vdev);
- virtio_gpu_modeset_fini(vgdev);
- virtio_gpu_ttm_fini(vgdev);
- virtio_gpu_free_vbufs(vgdev);
- kfree(vgdev);
- return 0;
+}