|
@@ -258,7 +258,6 @@ static int qxl_device_init(struct qxl_device *qdev,
|
|
(unsigned long)qdev->surfaceram_size);
|
|
(unsigned long)qdev->surfaceram_size);
|
|
|
|
|
|
|
|
|
|
- qdev->gc_queue = create_singlethread_workqueue("qxl_gc");
|
|
|
|
INIT_WORK(&qdev->gc_work, qxl_gc_work);
|
|
INIT_WORK(&qdev->gc_work, qxl_gc_work);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
@@ -270,10 +269,7 @@ static void qxl_device_fini(struct qxl_device *qdev)
|
|
qxl_bo_unref(&qdev->current_release_bo[0]);
|
|
qxl_bo_unref(&qdev->current_release_bo[0]);
|
|
if (qdev->current_release_bo[1])
|
|
if (qdev->current_release_bo[1])
|
|
qxl_bo_unref(&qdev->current_release_bo[1]);
|
|
qxl_bo_unref(&qdev->current_release_bo[1]);
|
|
- flush_workqueue(qdev->gc_queue);
|
|
|
|
- destroy_workqueue(qdev->gc_queue);
|
|
|
|
- qdev->gc_queue = NULL;
|
|
|
|
-
|
|
|
|
|
|
+ flush_work(&qdev->gc_work);
|
|
qxl_ring_free(qdev->command_ring);
|
|
qxl_ring_free(qdev->command_ring);
|
|
qxl_ring_free(qdev->cursor_ring);
|
|
qxl_ring_free(qdev->cursor_ring);
|
|
qxl_ring_free(qdev->release_ring);
|
|
qxl_ring_free(qdev->release_ring);
|