aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gvt/gvt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/gvt.c')
-rw-r--r--drivers/gpu/drm/i915/gvt/gvt.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 712f9d14e720..46c8b720e336 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -176,6 +176,7 @@ static const struct intel_gvt_ops intel_gvt_ops = {
176 .emulate_mmio_write = intel_vgpu_emulate_mmio_write, 176 .emulate_mmio_write = intel_vgpu_emulate_mmio_write,
177 .vgpu_create = intel_gvt_create_vgpu, 177 .vgpu_create = intel_gvt_create_vgpu,
178 .vgpu_destroy = intel_gvt_destroy_vgpu, 178 .vgpu_destroy = intel_gvt_destroy_vgpu,
179 .vgpu_release = intel_gvt_release_vgpu,
179 .vgpu_reset = intel_gvt_reset_vgpu, 180 .vgpu_reset = intel_gvt_reset_vgpu,
180 .vgpu_activate = intel_gvt_activate_vgpu, 181 .vgpu_activate = intel_gvt_activate_vgpu,
181 .vgpu_deactivate = intel_gvt_deactivate_vgpu, 182 .vgpu_deactivate = intel_gvt_deactivate_vgpu,
@@ -315,6 +316,11 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
315 if (WARN_ON(!gvt)) 316 if (WARN_ON(!gvt))
316 return; 317 return;
317 318
319 intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
320 intel_gvt_hypervisor_host_exit(&dev_priv->drm.pdev->dev, gvt);
321 intel_gvt_cleanup_vgpu_type_groups(gvt);
322 intel_gvt_clean_vgpu_types(gvt);
323
318 intel_gvt_debugfs_clean(gvt); 324 intel_gvt_debugfs_clean(gvt);
319 clean_service_thread(gvt); 325 clean_service_thread(gvt);
320 intel_gvt_clean_cmd_parser(gvt); 326 intel_gvt_clean_cmd_parser(gvt);
@@ -322,17 +328,10 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
322 intel_gvt_clean_workload_scheduler(gvt); 328 intel_gvt_clean_workload_scheduler(gvt);
323 intel_gvt_clean_gtt(gvt); 329 intel_gvt_clean_gtt(gvt);
324 intel_gvt_clean_irq(gvt); 330 intel_gvt_clean_irq(gvt);
325 intel_gvt_clean_mmio_info(gvt);
326 intel_gvt_free_firmware(gvt); 331 intel_gvt_free_firmware(gvt);
327 332 intel_gvt_clean_mmio_info(gvt);
328 intel_gvt_hypervisor_host_exit(&dev_priv->drm.pdev->dev, gvt);
329 intel_gvt_cleanup_vgpu_type_groups(gvt);
330 intel_gvt_clean_vgpu_types(gvt);
331
332 idr_destroy(&gvt->vgpu_idr); 333 idr_destroy(&gvt->vgpu_idr);
333 334
334 intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
335
336 kfree(dev_priv->gvt); 335 kfree(dev_priv->gvt);
337 dev_priv->gvt = NULL; 336 dev_priv->gvt = NULL;
338} 337}