summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPaul Kocialkowski <paul.kocialkowski@bootlin.com>2019-04-24 11:04:13 +0200
committerPaul Kocialkowski <paul.kocialkowski@bootlin.com>2019-04-24 15:09:08 +0200
commite02bc29b2cfa7806830d6da8b2322cddd67e8dfe (patch)
tree748128b2f657796f0c9c8d2755662f6c6a0ae052 /drivers
parentd08106796a78a4273e39e1bbdf538dc4334b2635 (diff)
downloadlinux-stable-e02bc29b2cfa7806830d6da8b2322cddd67e8dfe.tar.gz
linux-stable-e02bc29b2cfa7806830d6da8b2322cddd67e8dfe.tar.bz2
linux-stable-e02bc29b2cfa7806830d6da8b2322cddd67e8dfe.zip
drm/sun4i: Unbind components before releasing DRM and memory
Our components may still be using the DRM device driver (if only to access our driver's private data), so make sure to unbind them before the final drm_dev_put. Also release our reserved memory after component unbind instead of before to match reverse creation order. Fixes: f5a9ed867c83 ("drm/sun4i: Fix component unbinding and component master deletion") Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190424090413.6918-1-paul.kocialkowski@bootlin.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/sun4i/sun4i_drv.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index 843b86661833..29258b404e54 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -149,10 +149,11 @@ static void sun4i_drv_unbind(struct device *dev)
drm_kms_helper_poll_fini(drm);
drm_atomic_helper_shutdown(drm);
drm_mode_config_cleanup(drm);
- of_reserved_mem_device_release(dev);
- drm_dev_put(drm);
component_unbind_all(dev, NULL);
+ of_reserved_mem_device_release(dev);
+
+ drm_dev_put(drm);
}
static const struct component_master_ops sun4i_drv_master_ops = {