diff options
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/gvt.c')
-rw-r--r-- | drivers/gpu/drm/i915/gvt/gvt.c | 15 |
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 | } |