| From b9fe9daf80103a2f91752fcf2bcf050866d4ae2f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 6 Apr 2023 04:25:59 +0800 |
| Subject: drm/tegra: Avoid potential 32-bit integer overflow |
| |
| From: Nur Hussein <hussein@unixcat.org> |
| |
| [ Upstream commit 2429b3c529da29d4277d519bd66d034842dcd70c ] |
| |
| In tegra_sor_compute_config(), the 32-bit value mode->clock is |
| multiplied by 1000, and assigned to the u64 variable pclk. We can avoid |
| a potential 32-bit integer overflow by casting mode->clock to u64 before |
| we do the arithmetic and assignment. |
| |
| Signed-off-by: Nur Hussein <hussein@unixcat.org> |
| Signed-off-by: Thierry Reding <treding@nvidia.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/tegra/sor.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c |
| index 8af632740673a..77723d5f1d3fd 100644 |
| --- a/drivers/gpu/drm/tegra/sor.c |
| +++ b/drivers/gpu/drm/tegra/sor.c |
| @@ -1153,7 +1153,7 @@ static int tegra_sor_compute_config(struct tegra_sor *sor, |
| struct drm_dp_link *link) |
| { |
| const u64 f = 100000, link_rate = link->rate * 1000; |
| - const u64 pclk = mode->clock * 1000; |
| + const u64 pclk = (u64)mode->clock * 1000; |
| u64 input, output, watermark, num; |
| struct tegra_sor_params params; |
| u32 num_syms_per_line; |
| -- |
| 2.39.2 |
| |