]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fbdev: omapfb: Add missing error check for clk_get()
authorChen Ni <nichen@iscas.ac.cn>
Tue, 10 Mar 2026 08:56:25 +0000 (16:56 +0800)
committerHelge Deller <deller@gmx.de>
Tue, 10 Mar 2026 17:40:21 +0000 (18:40 +0100)
The hwa742_init() function did not check the return value of clk_get().
This could lead to dereferencing an error pointer in subsequent clock
operations, potentially causing a kernel crash.

Fix this by adding a missing error check and ensuring proper clock
resource cleanup on failure and driver removal.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/omap/hwa742.c

index 64e76e1f5388a7fc107d58ccce4a63ee7bd60d29..68a677f824e95b57db6d4523ddde41ba3e3456e9 100644 (file)
@@ -950,6 +950,8 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,
        omapfb_conf = dev_get_platdata(fbdev->dev);
 
        hwa742.sys_ck = clk_get(NULL, "hwa_sys_ck");
+       if (IS_ERR(hwa742.sys_ck))
+               return PTR_ERR(hwa742.sys_ck);
 
        spin_lock_init(&hwa742.req_lock);
 
@@ -1028,6 +1030,7 @@ err3:
 err2:
        hwa742.int_ctrl->cleanup();
 err1:
+       clk_put(hwa742.sys_ck);
        return r;
 }
 
@@ -1037,6 +1040,7 @@ static void hwa742_cleanup(void)
        hwa742.extif->cleanup();
        hwa742.int_ctrl->cleanup();
        clk_disable_unprepare(hwa742.sys_ck);
+       clk_put(hwa742.sys_ck);
 }
 
 struct lcd_ctrl hwa742_ctrl = {