drm/amd/display: Fix incorrect size calculation for loop in dcn401
authorAlex Hung <alex.hung@amd.com>
Wed, 29 May 2024 20:08:44 +0000 (14:08 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jun 2024 20:17:17 +0000 (16:17 -0400)
[WHY]
fe_clk_en and be_clk_sel have size of 4 but sizeof(fe_clk_en) has
byte size 16 which is lager than the array size.

[HOW]
Use ARRAY_SIZE for calculating size.

This fixes 2 OVERRUN issues reported by Coverity.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Acked-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dccg/dcn401/dcn401_dccg.c

index dac31c4cf2a78135b2b63c97708a331e6a719ff1..6a467c49b4a4d79e7a6ef26c5cc28966d83204fb 100644 (file)
@@ -885,7 +885,7 @@ static uint8_t dccg401_get_other_enabled_symclk_fe(struct dccg *dccg, uint32_t s
        /* for DPMST, this backend could be used by multiple front end.
        only disable the backend if this stream_enc_ins is the last active stream enc connected to this back_end*/
                uint8_t i;
-               for (i = 0; i != link_enc_inst && i < sizeof(fe_clk_en); i++) {
+               for (i = 0; i != link_enc_inst && i < ARRAY_SIZE(fe_clk_en); i++) {
                        if (fe_clk_en[i] && be_clk_sel[i] == link_enc_inst)
                                num_enabled_symclk_fe++;
                }