* [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
@ 2024-07-29 17:40 Nikita Zhandarovich
2024-07-29 18:49 ` ✗ Fi.CI.BAT: failure for drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() (rev2) Patchwork
2024-07-30 12:08 ` [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() Jani Nikula
0 siblings, 2 replies; 3+ messages in thread
From: Nikita Zhandarovich @ 2024-07-29 17:40 UTC (permalink / raw)
To: Jani Nikula, Rodrigo Vivi, Joonas Lahtinen
Cc: Nikita Zhandarovich, Tvrtko Ursulin, David Airlie, Daniel Vetter,
Ville Syrjälä, intel-gfx, intel-xe, dri-devel,
linux-kernel, lvc-project, stable
On the off chance that clock value ends up being too high (by means
of skl_ddi_calculate_wrpll() having benn called with big enough
value of crtc_state->port_clock * 1000), one possible consequence
may be that the result will not be able to fit into signed int.
Fix this issue by moving conversion of clock parameter from kHz to Hz
into the body of skl_ddi_calculate_wrpll(), as well as casting the
same parameter to u64 type while calculating the value for AFE clock.
This both mitigates the overflow problem and avoids possible erroneous
integer promotion mishaps.
Found by Linux Verification Center (linuxtesting.org) with static
analysis tool SVACE.
Fixes: fe70b262e781 ("drm/i915: Move a bunch of stuff into rodata from the stack")
Cc: stable@vger.kernel.org
Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
---
v2: instead of double casting of 'clock' with (u64)(u32), convert
'clock' to Hz inside skl_ddi_calculate_wrpll() and cast it only
to u64 to mitigate the issue. Per Jani's <jani.nikula@linux.intel.com>
helpful suggestion made here:
https://lore.kernel.org/all/87ed7gzhin.fsf@intel.com/
Also, change commit description accordingly.
v1: https://lore.kernel.org/all/20240724184911.12250-1-n.zhandarovich@fintech.ru/
drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 90998b037349..292d163036b1 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -1658,7 +1658,7 @@ static void skl_wrpll_params_populate(struct skl_wrpll_params *params,
}
static int
-skl_ddi_calculate_wrpll(int clock /* in Hz */,
+skl_ddi_calculate_wrpll(int clock,
int ref_clock,
struct skl_wrpll_params *wrpll_params)
{
@@ -1683,7 +1683,7 @@ skl_ddi_calculate_wrpll(int clock /* in Hz */,
};
unsigned int dco, d, i;
unsigned int p0, p1, p2;
- u64 afe_clock = clock * 5; /* AFE Clock is 5x Pixel clock */
+ u64 afe_clock = (u64)clock * 1000 * 5; /* AFE Clock is 5x Pixel clock, in Hz */
for (d = 0; d < ARRAY_SIZE(dividers); d++) {
for (dco = 0; dco < ARRAY_SIZE(dco_central_freq); dco++) {
@@ -1808,7 +1808,7 @@ static int skl_ddi_hdmi_pll_dividers(struct intel_crtc_state *crtc_state)
struct skl_wrpll_params wrpll_params = {};
int ret;
- ret = skl_ddi_calculate_wrpll(crtc_state->port_clock * 1000,
+ ret = skl_ddi_calculate_wrpll(crtc_state->port_clock,
i915->display.dpll.ref_clks.nssc, &wrpll_params);
if (ret)
return ret;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() (rev2)
2024-07-29 17:40 [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() Nikita Zhandarovich
@ 2024-07-29 18:49 ` Patchwork
2024-07-30 12:08 ` [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() Jani Nikula
1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2024-07-29 18:49 UTC (permalink / raw)
To: Nikita Zhandarovich; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 12730 bytes --]
== Series Details ==
Series: drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() (rev2)
URL : https://patchwork.freedesktop.org/series/136455/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_15149 -> Patchwork_136455v2
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_136455v2 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_136455v2, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/index.html
Participating hosts (38 -> 41)
------------------------------
Additional (5): bat-adlp-9 bat-adlp-6 bat-atsm-1 bat-dg2-14 bat-dg2-13
Missing (2): fi-snb-2520m fi-elk-e7500
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_136455v2:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@gt_pm:
- bat-jsl-1: [PASS][1] -> [DMESG-FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15149/bat-jsl-1/igt@i915_selftest@live@gt_pm.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-jsl-1/igt@i915_selftest@live@gt_pm.html
* igt@runner@aborted:
- bat-atsm-1: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-atsm-1/igt@runner@aborted.html
Known issues
------------
Here are the changes found in Patchwork_136455v2 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-adlp-9: NOTRUN -> [SKIP][4] ([i915#9318])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@debugfs_test@basic-hwmon.html
- bat-adlp-6: NOTRUN -> [SKIP][5] ([i915#9318])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@debugfs_test@basic-hwmon.html
* igt@gem_lmem_swapping@basic:
- bat-adlp-9: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@random-engines:
- bat-adlp-6: NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@gem_lmem_swapping@random-engines.html
* igt@gem_mmap@basic:
- bat-dg2-14: NOTRUN -> [SKIP][8] ([i915#4083])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-dg2-14: NOTRUN -> [SKIP][9] ([i915#4079]) +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_fence_blits@basic:
- bat-dg2-14: NOTRUN -> [SKIP][10] ([i915#4077]) +2 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@gem_tiled_fence_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-adlp-6: NOTRUN -> [SKIP][11] ([i915#3282])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@gem_tiled_pread_basic.html
- bat-adlp-9: NOTRUN -> [SKIP][12] ([i915#3282])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-adlp-9: NOTRUN -> [SKIP][13] ([i915#6621])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@i915_pm_rps@basic-api.html
- bat-dg2-14: NOTRUN -> [SKIP][14] ([i915#6621])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@i915_pm_rps@basic-api.html
- bat-adlp-6: NOTRUN -> [SKIP][15] ([i915#6621])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@i915_pm_rps@basic-api.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][16] ([i915#5190])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][17] ([i915#4212]) +7 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][18] ([i915#4215] / [i915#5190])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_addfb_basic@basic-y-tiled-legacy.html
* igt@kms_chamelium_hpd@dp-hpd-fast:
- bat-dg2-13: NOTRUN -> [SKIP][19] ([Intel XE#484]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-13/igt@kms_chamelium_hpd@dp-hpd-fast.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- bat-dg2-13: NOTRUN -> [SKIP][20] ([Intel XE#484] / [i915#4550]) +1 other test skip
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-13/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- bat-adlp-9: NOTRUN -> [SKIP][21] ([i915#4103]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-dg2-14: NOTRUN -> [SKIP][22] ([i915#4103] / [i915#4213]) +1 other test skip
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
- bat-adlp-6: NOTRUN -> [SKIP][23] ([i915#4103]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-dg2-14: NOTRUN -> [SKIP][24] ([i915#3555] / [i915#3840])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_dsc@dsc-basic.html
- bat-adlp-6: NOTRUN -> [SKIP][25] ([i915#3555] / [i915#3840])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@kms_dsc@dsc-basic.html
- bat-adlp-9: NOTRUN -> [SKIP][26] ([i915#3555] / [i915#3840])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-dg2-14: NOTRUN -> [SKIP][27]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_force_connector_basic@force-load-detect.html
- bat-adlp-6: NOTRUN -> [SKIP][28]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@kms_force_connector_basic@force-load-detect.html
- bat-adlp-9: NOTRUN -> [SKIP][29]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_force_connector_basic@prune-stale-modes:
- bat-dg2-14: NOTRUN -> [SKIP][30] ([i915#5274])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_pm_backlight@basic-brightness:
- bat-dg2-14: NOTRUN -> [SKIP][31] ([i915#5354])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_pm_backlight@basic-brightness.html
- bat-adlp-9: NOTRUN -> [SKIP][32] ([i915#9812])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr@psr-sprite-plane-onoff:
- bat-adlp-9: NOTRUN -> [SKIP][33] ([i915#1072] / [i915#9673] / [i915#9732]) +3 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@kms_psr@psr-sprite-plane-onoff.html
- bat-dg2-14: NOTRUN -> [SKIP][34] ([i915#1072] / [i915#9732]) +3 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adlp-9: NOTRUN -> [SKIP][35] ([i915#3555])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@kms_setmode@basic-clone-single-crtc.html
- bat-dg2-14: NOTRUN -> [SKIP][36] ([i915#3555])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@kms_setmode@basic-clone-single-crtc.html
- bat-adlp-6: NOTRUN -> [SKIP][37] ([i915#3555])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-dg2-14: NOTRUN -> [SKIP][38] ([i915#3708])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-mmap:
- bat-dg2-14: NOTRUN -> [SKIP][39] ([i915#3708] / [i915#4077]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-fence-read:
- bat-adlp-9: NOTRUN -> [SKIP][40] ([i915#3291] / [i915#3708]) +2 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-9/igt@prime_vgem@basic-fence-read.html
- bat-adlp-6: NOTRUN -> [SKIP][41] ([i915#3291] / [i915#3708]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-adlp-6/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-read:
- bat-dg2-14: NOTRUN -> [SKIP][42] ([i915#3291] / [i915#3708]) +2 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/bat-dg2-14/igt@prime_vgem@basic-read.html
[Intel XE#484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/484
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4215
[i915#4550]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4550
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
Build changes
-------------
* Linux: CI_DRM_15149 -> Patchwork_136455v2
CI-20190529: 20190529
CI_DRM_15149: 3a93d4a1f4872fbdfe43e9b7f1a7dfd9236a642d @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7941: 3acf6637792bab9a748de63330ef81f5e22eb174 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_136455v2: 3a93d4a1f4872fbdfe43e9b7f1a7dfd9236a642d @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_136455v2/index.html
[-- Attachment #2: Type: text/html, Size: 15935 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
2024-07-29 17:40 [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() Nikita Zhandarovich
2024-07-29 18:49 ` ✗ Fi.CI.BAT: failure for drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() (rev2) Patchwork
@ 2024-07-30 12:08 ` Jani Nikula
1 sibling, 0 replies; 3+ messages in thread
From: Jani Nikula @ 2024-07-30 12:08 UTC (permalink / raw)
To: Nikita Zhandarovich, Rodrigo Vivi, Joonas Lahtinen
Cc: Nikita Zhandarovich, Tvrtko Ursulin, David Airlie, Daniel Vetter,
Ville Syrjälä, intel-gfx, intel-xe, dri-devel,
linux-kernel, lvc-project, stable
On Mon, 29 Jul 2024, Nikita Zhandarovich <n.zhandarovich@fintech.ru> wrote:
> On the off chance that clock value ends up being too high (by means
> of skl_ddi_calculate_wrpll() having benn called with big enough
> value of crtc_state->port_clock * 1000), one possible consequence
> may be that the result will not be able to fit into signed int.
>
> Fix this issue by moving conversion of clock parameter from kHz to Hz
> into the body of skl_ddi_calculate_wrpll(), as well as casting the
> same parameter to u64 type while calculating the value for AFE clock.
> This both mitigates the overflow problem and avoids possible erroneous
> integer promotion mishaps.
>
> Found by Linux Verification Center (linuxtesting.org) with static
> analysis tool SVACE.
>
> Fixes: fe70b262e781 ("drm/i915: Move a bunch of stuff into rodata from the stack")
I don't think that's right. The code was only shuffled around at that
point. I think the bug's been there since the code was added in commit
82d354370189 ("drm/i915/skl: Implementation of SKL DPLL programming").
Fixed while applying to drm-intel-next, thanks for the patch.
BR,
Jani.
> Cc: stable@vger.kernel.org
> Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
> ---
> v2: instead of double casting of 'clock' with (u64)(u32), convert
> 'clock' to Hz inside skl_ddi_calculate_wrpll() and cast it only
> to u64 to mitigate the issue. Per Jani's <jani.nikula@linux.intel.com>
> helpful suggestion made here:
> https://lore.kernel.org/all/87ed7gzhin.fsf@intel.com/
> Also, change commit description accordingly.
>
> v1: https://lore.kernel.org/all/20240724184911.12250-1-n.zhandarovich@fintech.ru/
>
> drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> index 90998b037349..292d163036b1 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> @@ -1658,7 +1658,7 @@ static void skl_wrpll_params_populate(struct skl_wrpll_params *params,
> }
>
> static int
> -skl_ddi_calculate_wrpll(int clock /* in Hz */,
> +skl_ddi_calculate_wrpll(int clock,
> int ref_clock,
> struct skl_wrpll_params *wrpll_params)
> {
> @@ -1683,7 +1683,7 @@ skl_ddi_calculate_wrpll(int clock /* in Hz */,
> };
> unsigned int dco, d, i;
> unsigned int p0, p1, p2;
> - u64 afe_clock = clock * 5; /* AFE Clock is 5x Pixel clock */
> + u64 afe_clock = (u64)clock * 1000 * 5; /* AFE Clock is 5x Pixel clock, in Hz */
>
> for (d = 0; d < ARRAY_SIZE(dividers); d++) {
> for (dco = 0; dco < ARRAY_SIZE(dco_central_freq); dco++) {
> @@ -1808,7 +1808,7 @@ static int skl_ddi_hdmi_pll_dividers(struct intel_crtc_state *crtc_state)
> struct skl_wrpll_params wrpll_params = {};
> int ret;
>
> - ret = skl_ddi_calculate_wrpll(crtc_state->port_clock * 1000,
> + ret = skl_ddi_calculate_wrpll(crtc_state->port_clock,
> i915->display.dpll.ref_clks.nssc, &wrpll_params);
> if (ret)
> return ret;
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-07-30 12:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-29 17:40 [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() Nikita Zhandarovich
2024-07-29 18:49 ` ✗ Fi.CI.BAT: failure for drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() (rev2) Patchwork
2024-07-30 12:08 ` [PATCH v2] drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll() Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).