2022-07-06 06:43:42

by Zhongjun Tan

[permalink] [raw]
Subject: [PATCH] drm/amd/display: Fix unsigned expression compared with zero

From: Zhongjun Tan <[email protected]>

Fix unsigned expression compared with zero

Signed-off-by: Zhongjun Tan <[email protected]>
---
.../gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
index 548cdef8a8ad..21e4af38b8c1 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
+++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
@@ -244,8 +244,8 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,
bool req128_c = false;
bool surf_linear = (pipe_src_param->sw_mode == dm_sw_linear);
bool surf_vert = (pipe_src_param->source_scan == dm_vert);
- unsigned int log2_swath_height_l = 0;
- unsigned int log2_swath_height_c = 0;
+ int log2_swath_height_l = 0;
+ int log2_swath_height_c = 0;
unsigned int detile_buf_size_in_bytes = mode_lib->ip.det_buffer_size_kbytes * 1024;

full_swath_bytes_packed_l = rq_param->misc.rq_l.full_swath_bytes;
--
2.29.0


2022-07-07 19:26:52

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix unsigned expression compared with zero

On Wed, Jul 6, 2022 at 3:41 AM Zhongjun Tan <[email protected]> wrote:
>
> From: Zhongjun Tan <[email protected]>
>
> Fix unsigned expression compared with zero
>
> Signed-off-by: Zhongjun Tan <[email protected]>
> ---
> .../gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
> index 548cdef8a8ad..21e4af38b8c1 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
> @@ -244,8 +244,8 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,
> bool req128_c = false;
> bool surf_linear = (pipe_src_param->sw_mode == dm_sw_linear);
> bool surf_vert = (pipe_src_param->source_scan == dm_vert);
> - unsigned int log2_swath_height_l = 0;
> - unsigned int log2_swath_height_c = 0;
> + int log2_swath_height_l = 0;
> + int log2_swath_height_c = 0;

@Wentland, Harry Can you comment on the required range needed for
these integers? Maybe it would be better to just drop the comparisons
with 0.

Alex

> unsigned int detile_buf_size_in_bytes = mode_lib->ip.det_buffer_size_kbytes * 1024;
>
> full_swath_bytes_packed_l = rq_param->misc.rq_l.full_swath_bytes;
> --
> 2.29.0
>

2022-07-07 21:22:09

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix unsigned expression compared with zero

On Thu, Jul 7, 2022 at 4:38 PM Harry Wentland <[email protected]> wrote:
>
>
>
> On 2022-07-07 14:22, Alex Deucher wrote:
> > On Wed, Jul 6, 2022 at 3:41 AM Zhongjun Tan <[email protected]> wrote:
> >>
> >> From: Zhongjun Tan <[email protected]>
> >>
> >> Fix unsigned expression compared with zero
> >>
> >> Signed-off-by: Zhongjun Tan <[email protected]>
> >> ---
> >> .../gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
> >> index 548cdef8a8ad..21e4af38b8c1 100644
> >> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
> >> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
> >> @@ -244,8 +244,8 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,
> >> bool req128_c = false;
> >> bool surf_linear = (pipe_src_param->sw_mode == dm_sw_linear);
> >> bool surf_vert = (pipe_src_param->source_scan == dm_vert);
> >> - unsigned int log2_swath_height_l = 0;
> >> - unsigned int log2_swath_height_c = 0;
> >> + int log2_swath_height_l = 0;
> >> + int log2_swath_height_c = 0;
> >
> > @Wentland, Harry Can you comment on the required range needed for
> > these integers? Maybe it would be better to just drop the comparisons
> > with 0.
> >
>
> I'm not sure I see the problem we're trying to fix.
> An unsigned int can be 0, so a x != 0 or x > 0 check
> is still a valid check.

Hmm, you are right. I swear I had seen a >= 0 check in that code, but
now I can't find it. Sorry for the noise.

Alex

>
> Harry
>
> > Alex
> >
> >> unsigned int detile_buf_size_in_bytes = mode_lib->ip.det_buffer_size_kbytes * 1024;
> >>
> >> full_swath_bytes_packed_l = rq_param->misc.rq_l.full_swath_bytes;
> >> --
> >> 2.29.0
> >>
>

2022-07-07 21:23:44

by Harry Wentland

[permalink] [raw]
Subject: Re: [PATCH] drm/amd/display: Fix unsigned expression compared with zero



On 2022-07-07 14:22, Alex Deucher wrote:
> On Wed, Jul 6, 2022 at 3:41 AM Zhongjun Tan <[email protected]> wrote:
>>
>> From: Zhongjun Tan <[email protected]>
>>
>> Fix unsigned expression compared with zero
>>
>> Signed-off-by: Zhongjun Tan <[email protected]>
>> ---
>> .../gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
>> index 548cdef8a8ad..21e4af38b8c1 100644
>> --- a/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
>> +++ b/drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c
>> @@ -244,8 +244,8 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,
>> bool req128_c = false;
>> bool surf_linear = (pipe_src_param->sw_mode == dm_sw_linear);
>> bool surf_vert = (pipe_src_param->source_scan == dm_vert);
>> - unsigned int log2_swath_height_l = 0;
>> - unsigned int log2_swath_height_c = 0;
>> + int log2_swath_height_l = 0;
>> + int log2_swath_height_c = 0;
>
> @Wentland, Harry Can you comment on the required range needed for
> these integers? Maybe it would be better to just drop the comparisons
> with 0.
>

I'm not sure I see the problem we're trying to fix.
An unsigned int can be 0, so a x != 0 or x > 0 check
is still a valid check.

Harry

> Alex
>
>> unsigned int detile_buf_size_in_bytes = mode_lib->ip.det_buffer_size_kbytes * 1024;
>>
>> full_swath_bytes_packed_l = rq_param->misc.rq_l.full_swath_bytes;
>> --
>> 2.29.0
>>