| From 84d986bb26f109bd9e34169149f8232b3f8e3319 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 13 Aug 2025 17:42:31 +0800 |
| Subject: drm/hisilicon/hibmc: fix the hibmc loaded failed bug |
| |
| From: Baihan Li <libaihan@huawei.com> |
| |
| [ Upstream commit 93a08f856fcc5aaeeecad01f71bef3088588216a ] |
| |
| When hibmc loaded failed, the driver use hibmc_unload to free the |
| resource, but the mutexes in mode.config are not init, which will |
| access an NULL pointer. Just change goto statement to return, because |
| hibnc_hw_init() doesn't need to free anything. |
| |
| Fixes: b3df5e65cc03 ("drm/hibmc: Drop drm_vblank_cleanup") |
| Signed-off-by: Baihan Li <libaihan@huawei.com> |
| Signed-off-by: Yongbang Shi <shiyongbang@huawei.com> |
| Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> |
| Link: https://lore.kernel.org/r/20250813094238.3722345-5-shiyongbang@huawei.com |
| Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c |
| index fe4269c5aa0a..20c2af66ee53 100644 |
| --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c |
| +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c |
| @@ -269,12 +269,12 @@ static int hibmc_load(struct drm_device *dev) |
| |
| ret = hibmc_hw_init(priv); |
| if (ret) |
| - goto err; |
| + return ret; |
| |
| ret = drmm_vram_helper_init(dev, pci_resource_start(pdev, 0), priv->fb_size); |
| if (ret) { |
| drm_err(dev, "Error initializing VRAM MM; %d\n", ret); |
| - goto err; |
| + return ret; |
| } |
| |
| ret = hibmc_kms_init(priv); |
| -- |
| 2.50.1 |
| |