drm/amd/display: Check null values from functions
authorAlex Hung <alex.hung@amd.com>
Tue, 16 Jul 2024 20:58:06 +0000 (14:58 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 27 Jul 2024 21:35:38 +0000 (17:35 -0400)
Functions get_per_method_common_meta and get_expanded_strategy_list can
return null and thus it is necessary to check their returned values
before dereferencing.

This fixes 3 NULL_RETURNS issues reported by Coverity.

Signed-off-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c

index dddb218..9331a8f 100644 (file)
@@ -1199,12 +1199,17 @@ static bool is_timing_group_schedulable(
 
        /* init allow start and end lines for timing group */
        stream_method_fams2_meta = get_per_method_common_meta(pmo, pstate_strategy->per_stream_pstate_method[base_stream_idx], base_stream_idx);
+       if (!stream_method_fams2_meta)
+               return false;
+
        group_fams2_meta->allow_start_otg_vline = stream_method_fams2_meta->allow_start_otg_vline;
        group_fams2_meta->allow_end_otg_vline = stream_method_fams2_meta->allow_end_otg_vline;
        group_fams2_meta->period_us = stream_method_fams2_meta->period_us;
        for (i = base_stream_idx + 1; i < display_cfg->display_config.num_streams; i++) {
                if (is_bit_set_in_bitfield(pmo->scratch.pmo_dcn4.synchronized_timing_group_masks[timing_group_idx], i)) {
                        stream_method_fams2_meta = get_per_method_common_meta(pmo, pstate_strategy->per_stream_pstate_method[i], i);
+                       if (!stream_method_fams2_meta)
+                               return false;
 
                        if (group_fams2_meta->allow_start_otg_vline < stream_method_fams2_meta->allow_start_otg_vline) {
                                /* set group allow start to larger otg vline */
@@ -1768,6 +1773,9 @@ bool pmo_dcn4_fams2_init_for_pstate_support(struct dml2_pmo_init_for_pstate_supp
        build_synchronized_timing_groups(pmo, display_config);
 
        strategy_list = get_expanded_strategy_list(&pmo->init_data, display_config->display_config.num_streams);
+       if (!strategy_list)
+               return false;
+
        strategy_list_size = get_num_expanded_strategies(&pmo->init_data, display_config->display_config.num_streams);
 
        if (strategy_list_size == 0)