From 2132940f2192824acf160d115192755f7c58a847 Mon Sep 17 00:00:00 2001
From: Yu Kuai <yukuai3@huawei.com>
Date: Fri, 11 Sep 2020 19:21:19 +0800
Subject: drm/mediatek: Add missing put_device() call in mtk_drm_kms_init()
Git-commit: 2132940f2192824acf160d115192755f7c58a847
Patch-mainline: v5.9-rc6
References: bsc#1152446
if of_find_device_by_node() succeed, mtk_drm_kms_init() doesn't have
a corresponding put_device(). Thus add jump target to fix the exception
handling for this function implementation.
Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.")
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -251,7 +251,7 @@ static int mtk_drm_kms_init(struct drm_d
ret = component_bind_all(drm->dev, drm);
if (ret)
- goto err_config_cleanup;
+ goto put_mutex_dev;
/*
* We currently support two fixed data streams, each optional,
@@ -298,7 +298,7 @@ static int mtk_drm_kms_init(struct drm_d
}
if (!dma_dev->dma_parms) {
ret = -ENOMEM;
- goto err_component_unbind;
+ goto put_dma_dev;
}
ret = dma_set_max_seg_size(dma_dev, (unsigned int)DMA_BIT_MASK(32));
@@ -325,11 +325,14 @@ static int mtk_drm_kms_init(struct drm_d
err_unset_dma_parms:
if (private->dma_parms_allocated)
dma_dev->dma_parms = NULL;
+put_dma_dev:
+ put_device(private->dma_dev);
err_component_unbind:
component_unbind_all(drm->dev, drm);
err_config_cleanup:
drm_mode_config_cleanup(drm);
-
+put_mutex_dev:
+ put_device(private->mutex_dev);
return ret;
}