[lvc-project] [PATCH] gpu: fix potential division by zero in DesignWare controller driver
Pavel Zhigulin
Pavel.Zhigulin at kaspersky.com
Tue Sep 30 15:08:55 MSK 2025
A division by zero may occur in the dsi_get_phy_params function if
phy_req_kHz is in the range [1000000, 1500000]. In this case,
dsi_calc_phy_rate can return a value greater than 1000000, which sets
the 'ui' variable to zero. The variable is then used as the denominator
in the ROUND macro.
This patch adds an additional check of phy_rate_kHz to prevent 'ui'
from being zero.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: f819b0d4a913 ("drm/hisilicon: Add designware dsi encoder driver")
Signed-off-by: Pavel Zhigulin <Pavel.Zhigulin at kaspersky.com>
---
drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c b/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c
index e80debdc4176..7502a9ddbbf5 100644
--- a/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c
+++ b/drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c
@@ -251,7 +251,7 @@ static void dsi_get_phy_params(u32 phy_req_kHz,
memset(phy, 0, sizeof(*phy));
phy_rate_kHz = dsi_calc_phy_rate(phy_req_kHz, phy);
- if (!phy_rate_kHz)
+ if (!phy_rate_kHz || phy_rate_kHz > 1000000)
return;
ui = 1000000 / phy_rate_kHz;
--
2.43.0
More information about the lvc-project
mailing list