]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/hisilicon/hibmc: fix the hibmc loaded failed bug
authorBaihan Li <libaihan@huawei.com>
Wed, 13 Aug 2025 09:42:31 +0000 (17:42 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:34:46 +0000 (16:34 +0200)
[ 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

index 4cdcc34070ee9ce45e86fb2189c703a11886b6b2..ac552c339671a47375c6f059fcb7a29ea2d8ecc1 100644 (file)
@@ -319,13 +319,13 @@ 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),
                                    pci_resource_len(pdev, 0));
        if (ret) {
                drm_err(dev, "Error initializing VRAM MM; %d\n", ret);
-               goto err;
+               return ret;
        }
 
        ret = hibmc_kms_init(priv);