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;
> +}

Reply via email to