[PATCH] drm/i915/gvt: Destroy idle vgpu earlier
Wang, Zhi A
zhi.a.wang at intel.com
Tue Sep 25 07:05:52 UTC 2018
Thanks. Reviewed-by: Zhi Wang <zhi.a.wang at intel.com>
-----Original Message-----
From: intel-gvt-dev [mailto:intel-gvt-dev-bounces at lists.freedesktop.org] On Behalf Of Xiong Zhang
Sent: Tuesday, September 25, 2018 9:59 AM
To: intel-gvt-dev at lists.freedesktop.org
Cc: Zhang, Xiong Y <xiong.y.zhang at intel.com>
Subject: [PATCH] drm/i915/gvt: Destroy idle vgpu earlier
When host i915 module is unloaded, the following call trace exists:
[ 134.941075] Call Trace:
[ 134.941085] hrtimer_try_to_cancel+0x25/0x120 [ 134.941095] hrtimer_cancel+0x15/0x20 [ 134.941166] intel_gvt_destroy_idle_vgpu+0xe/0x20 [i915] [ 134.941230] intel_gvt_clean_device+0xe5/0x120 [i915] [ 134.941273] i915_driver_unload+0x9d/0x120 [i915] [ 134.941317] i915_pci_remove+0x15/0x20 [i915]
The reason is that idle vgpu reference gvt structure which has been freed earlier. So this patch move destroy_idle_vgpu() before destroy_vgt().
Fixes: 61a669473f82("drm/i915/gvt: cancel scheduler timer when no vGPU exists")
Signed-off-by: Xiong Zhang <xiong.y.zhang at intel.com>
---
drivers/gpu/drm/i915/gvt/gvt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c index 83b3f0d..566d469 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -319,6 +319,8 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
if (WARN_ON(!gvt))
return;
+ intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
+
intel_gvt_debugfs_clean(gvt);
clean_service_thread(gvt);
intel_gvt_clean_cmd_parser(gvt);
@@ -335,8 +337,6 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
idr_destroy(&gvt->vgpu_idr);
- intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
-
kfree(dev_priv->gvt);
dev_priv->gvt = NULL;
}
--
2.7.4
_______________________________________________
intel-gvt-dev mailing list
intel-gvt-dev at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev
More information about the intel-gvt-dev
mailing list