Patch "drm/msm/dpu: cast crtc_clk calculation to u64 in _dpu_core_perf_calc_clk()" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/msm/dpu: cast crtc_clk calculation to u64 in _dpu_core_perf_calc_clk()

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-msm-dpu-cast-crtc_clk-calculation-to-u64-in-_dpu.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 804ebc2eb8ae4fb04477cf3e816dbc9784bc7b33
Author: Zichen Xie <zichenxie0106@xxxxxxxxx>
Date:   Tue Oct 29 14:42:10 2024 -0500

    drm/msm/dpu: cast crtc_clk calculation to u64 in _dpu_core_perf_calc_clk()
    
    [ Upstream commit 20c7b42d9dbd048019bfe0af39229e3014007a98 ]
    
    There may be a potential integer overflow issue in
    _dpu_core_perf_calc_clk(). crtc_clk is defined as u64, while
    mode->vtotal, mode->hdisplay, and drm_mode_vrefresh(mode) are defined as
    a smaller data type. The result of the calculation will be limited to
    "int" in this case without correct casting. In screen with high
    resolution and high refresh rate, integer overflow may happen.
    So, we recommend adding an extra cast to prevent potential
    integer overflow.
    
    Fixes: c33b7c0389e1 ("drm/msm/dpu: add support for clk and bw scaling for display")
    Signed-off-by: Zichen Xie <zichenxie0106@xxxxxxxxx>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@xxxxxxxxxxx>
    Patchwork: https://patchwork.freedesktop.org/patch/622206/
    Link: https://lore.kernel.org/r/20241029194209.23684-1-zichenxie0106@xxxxxxxxx
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
index 1d9d83d7b99ed..72f043732f939 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
@@ -80,7 +80,7 @@ static u64 _dpu_core_perf_calc_clk(struct dpu_kms *kms,
 
 	mode = &state->adjusted_mode;
 
-	crtc_clk = mode->vtotal * mode->hdisplay * drm_mode_vrefresh(mode);
+	crtc_clk = (u64)mode->vtotal * mode->hdisplay * drm_mode_vrefresh(mode);
 
 	drm_atomic_crtc_for_each_plane(plane, crtc) {
 		pstate = to_dpu_plane_state(plane->state);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux