From 19b0683460d5f8b9fa61ebf26c33e644fe08853b Mon Sep 17 00:00:00 2001 From: Algea Cao Date: Tue, 27 Jul 2021 10:03:59 +0800 Subject: [PATCH] CHROMIUM: drm: rockchip/dw_hdmi-rockchip: Protect against > 2GHz pixel clocks Add a check just to make sure that someone doesn't try to give us a pixel clock that is > 2GHz. If they did that, some of our math might overflow, so it's good to make sure we don't do it. Change-Id: I451602f0d771bb16b399b43e376e1054b7ee060f Signed-off-by: Douglas Anderson Signed-off-by: Yakir Yang Reviewed-on: https://chromium-review.googlesource.com/284642 Reviewed-by: Alexandru Stan Signed-off-by: Algea Cao --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 14482c26c0a7..4bb72e32f661 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -263,6 +263,13 @@ dw_hdmi_rockchip_mode_valid(struct dw_hdmi *hdmi, void *data, break; } } + /* + * Pixel clocks we support are always < 2GHz and so fit in an + * int. We should make sure source rate does too so we don't get + * overflow when we multiply by 1000. + */ + if (mode->clock > INT_MAX / 1000) + return MODE_BAD; return (valid) ? MODE_OK : MODE_BAD; }