Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59c0573d authored by Jike Song's avatar Jike Song Committed by Zhenyu Wang
Browse files

drm/i915/gvt: init/destroy vgpu_idr properly



An idr should be initialized before use and destroyed afterwards.

Signed-off-by: default avatarJike Song <jike.song@intel.com>
Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
parent 440a9b9f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -201,6 +201,8 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
	intel_gvt_hypervisor_host_exit(&dev_priv->drm.pdev->dev, gvt);
	intel_gvt_clean_vgpu_types(gvt);

	idr_destroy(&gvt->vgpu_idr);

	kfree(dev_priv->gvt);
	dev_priv->gvt = NULL;
}
@@ -237,6 +239,8 @@ int intel_gvt_init_device(struct drm_i915_private *dev_priv)

	gvt_dbg_core("init gvt device\n");

	idr_init(&gvt->vgpu_idr);

	mutex_init(&gvt->lock);
	gvt->dev_priv = dev_priv;

@@ -244,7 +248,7 @@ int intel_gvt_init_device(struct drm_i915_private *dev_priv)

	ret = intel_gvt_setup_mmio_info(gvt);
	if (ret)
		return ret;
		goto out_clean_idr;

	ret = intel_gvt_load_firmware(gvt);
	if (ret)
@@ -313,6 +317,8 @@ int intel_gvt_init_device(struct drm_i915_private *dev_priv)
	intel_gvt_free_firmware(gvt);
out_clean_mmio_info:
	intel_gvt_clean_mmio_info(gvt);
out_clean_idr:
	idr_destroy(&gvt->vgpu_idr);
	kfree(gvt);
	return ret;
}