[PATCH v1 2/2] serial: msm_geni: Fix clock enable on error pointer

Aswin Murugan aswin.murugan at oss.qualcomm.com
Sat Jul 4 07:34:52 CEST 2026


When CONFIG_SKIP_EARLY_DM is enabled and no clock driver is available
during early serial init, devm_clk_get_optional() returns an error
pointer. The original code attempted to enable this error pointer,
causing a crash.

Fix by checking for both error pointers and NULL before calling
clk_enable(), using IS_ERR_OR_NULL() to handle all cases properly.

Signed-off-by: Aswin Murugan <aswin.murugan at oss.qualcomm.com>
---
 drivers/serial/serial_msm_geni.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/serial/serial_msm_geni.c b/drivers/serial/serial_msm_geni.c
index 3dca581f68f..d5c4f3f1310 100644
--- a/drivers/serial/serial_msm_geni.c
+++ b/drivers/serial/serial_msm_geni.c
@@ -524,7 +524,8 @@ static int msm_serial_probe(struct udevice *dev)
 		priv->se = clk;
 
 	/* Try enable clock */
-	clk_enable(clk);
+	if (!IS_ERR_OR_NULL(clk))
+		clk_enable(clk);
 
 	/* Check if firmware loading is needed (BT UART) */
 	proto = readl(priv->base + GENI_FW_REVISION_RO);
-- 
2.34.1



More information about the U-Boot mailing list