[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <58f33eb8-ae56-416a-ab23-2690160756cd@amd.com>
Date: Tue, 25 Feb 2025 17:19:37 -0700
From: Alex Hung <alex.hung@....com>
To: Vitaliy Shevtsov <v.shevtsov@...integration.ru>,
Chaitanya Dhere <chaitanya.dhere@....com>
Cc: Jun Lei <jun.lei@....com>, Harry Wentland <harry.wentland@....com>,
Leo Li <sunpeng.li@....com>, Rodrigo Siqueira <Rodrigo.Siqueira@....com>,
Alex Deucher <alexander.deucher@....com>,
Christian König <christian.koenig@....com>,
Xinhui Pan <Xinhui.Pan@....com>, David Airlie <airlied@...il.com>,
Simona Vetter <simona@...ll.ch>, Fangzhi Zuo <jerry.zuo@....com>,
Aric Cyr <aric.cyr@....com>, amd-gfx@...ts.freedesktop.org,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
lvc-project@...uxtesting.org
Subject: Re: [PATCH] drm/amd/display: fix type mismatch in
CalculateDynamicMetadataParameters()
On 2/22/25 16:58, Vitaliy Shevtsov wrote:
> There is a type mismatch between what CalculateDynamicMetadataParameters()
> takes and what is passed to it. Currently this function accepts several
> args as signed long but it's called with unsigned integers. On some systems
> where long is 32 bits and one of these input params is greater than INT_MAX
> it may cause passing input params as negative values.
>
> Fix this by changing these argument types from long to unsigned int. Also
> this will align the function's definition with similar functions in other
> dcn* drivers.
>
> Found by Linux Verification Center (linuxtesting.org) with Svace.
>
> Signed-off-by: Vitaliy Shevtsov <v.shevtsov@...integration.ru>
> ---
> .../amd/display/dc/dml/dcn30/display_mode_vba_30.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c b/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
> index cee1b351e105..c6c7ce84e260 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c
> @@ -281,10 +281,10 @@ static void CalculateDynamicMetadataParameters(
> double DISPCLK,
> double DCFClkDeepSleep,
> double PixelClock,
> - long HTotal,
> - long VBlank,
> - long DynamicMetadataTransmittedBytes,
> - long DynamicMetadataLinesBeforeActiveRequired,
> + unsigned int HTotal,
> + unsigned int VBlank,
> + unsigned int DynamicMetadataTransmittedBytes,
> + unsigned int DynamicMetadataLinesBeforeActiveRequired,
DynamicMetadataLinesBeforeActiveRequired past to
"CalculateDynamicMetadataParameters" are int instead of unsigned int.
Can you confirm and try with Svace?
Thanks.
> int InterlaceEnable,
> bool ProgressiveToInterlaceUnitInOPP,
> double *Tsetup,
> @@ -3265,8 +3265,8 @@ static double CalculateWriteBackDelay(
>
>
> static void CalculateDynamicMetadataParameters(int MaxInterDCNTileRepeaters, double DPPCLK, double DISPCLK,
> - double DCFClkDeepSleep, double PixelClock, long HTotal, long VBlank, long DynamicMetadataTransmittedBytes,
> - long DynamicMetadataLinesBeforeActiveRequired, int InterlaceEnable, bool ProgressiveToInterlaceUnitInOPP,
> + double DCFClkDeepSleep, double PixelClock, unsigned int HTotal, unsigned int VBlank, unsigned int DynamicMetadataTransmittedBytes,
> + unsigned int DynamicMetadataLinesBeforeActiveRequired, int InterlaceEnable, bool ProgressiveToInterlaceUnitInOPP,
> double *Tsetup, double *Tdmbf, double *Tdmec, double *Tdmsks)
> {
> double TotalRepeaterDelayTime = 0;
Powered by blists - more mailing lists