Patchwork [3/3] drm/i915: unregister interfaces first in unload

login
register
mail settings
Submitter Daniel Vetter
Date July 14, 2017, 7:14 p.m.
Message ID <20170714191439.31169-3-daniel.vetter@ffwll.ch>
Download mbox | patch
Permalink /patch/9841583/
State New
Headers show

Comments

Daniel Vetter - July 14, 2017, 7:14 p.m.
We first need to make sure no one else can get at us anymore,
before we can proceed to tear down all the datastructures.

Just a small step towards eventually the perfect unload code ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Chris Wilson - July 14, 2017, 7:35 p.m.
Quoting Daniel Vetter (2017-07-14 20:14:39)
> We first need to make sure no one else can get at us anymore,
> before we can proceed to tear down all the datastructures.
> 
> Just a small step towards eventually the perfect unload code ...
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Just some concern from the inertia of having the old order for years,
but this looks completely correct to me. That the driver may still be
active as we disable the userspace interfaces should not affect those.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 3a6dc04bd51e..38990b264b97 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1372,6 +1372,7 @@  void i915_driver_unload(struct drm_device *dev)
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct pci_dev *pdev = dev_priv->drm.pdev;
 
+	i915_driver_unregister(dev_priv);
 
 	if (i915_gem_suspend(dev_priv))
 		DRM_ERROR("failed to idle hardware; continuing to unload!\n");
@@ -1382,7 +1383,6 @@  void i915_driver_unload(struct drm_device *dev)
 
 	intel_gvt_cleanup(dev_priv);
 
-	i915_driver_unregister(dev_priv);
 	intel_modeset_cleanup(dev);
 
 	/*