Commit d3da7f00 authored by Chen Ni's avatar Chen Ni Committed by Helge Deller
Browse files

fbdev: omapfb: Add missing error check for clk_get()



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: default avatarChen Ni <nichen@iscas.ac.cn>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent f0447880
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,
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 = {