From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2084.outbound.protection.outlook.com [40.107.95.84]) by gabe.freedesktop.org (Postfix) with ESMTPS id 432E110E22E for ; Tue, 13 Jun 2023 12:46:54 +0000 (UTC) From: Hersen Wu To: , , , , , Date: Tue, 13 Jun 2023 08:46:47 -0400 Message-ID: <20230613124647.37529-1-hersenxs.wu@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain Subject: [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: fix test crash when n_pipes > n_outputs List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hersen Wu Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: Fix test crash by looping outputs using for_each_connected_output(display, output). When n_pipes > n_outputs, i >= n_outputs, display->outputs[i]->config.connector within for_each_pipe(display, i) are invalid. Invalid connectors cause test crash. Signed-off-by: Hersen Wu --- tests/amdgpu/amd_vrr_range.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c index 3f8f23e9a..611f41f95 100644 --- a/tests/amdgpu/amd_vrr_range.c +++ b/tests/amdgpu/amd_vrr_range.c @@ -258,18 +258,14 @@ static void test_freesync_parsing_base(data_t *data, uint32_t test_flags) const struct edid *edid; range_t range, expected_range; igt_output_t *output; - int i, j, test_conn_cnt = 0; + int j, test_conn_cnt = 0; + igt_display_t *display = &data->display; test_init(data); igt_amd_require_hpd(&data->display, data->fd); - for_each_pipe(&data->display, i) { - /* setup the output */ - output = data->output[i]; - if (!output || !igt_output_is_connected(output)) - continue; - + for_each_connected_output(display, output) { /* find a test EDID */ j = find_test_edid_index(output->config.connector->connector_type); @@ -335,18 +331,14 @@ static void test_freesync_range_base(data_t *data, uint32_t test_flags) { range_t range; igt_output_t *output; - int i, test_conn_cnt = 0; + int test_conn_cnt = 0; + igt_display_t *display = &data->display; test_init(data); igt_amd_require_hpd(&data->display, data->fd); - for_each_pipe(&data->display, i) { - /* setup the output */ - output = data->output[i]; - if (!output || !igt_output_is_connected(output)) - continue; - + for_each_connected_output(display, output) { igt_debug_on_f(!has_vrr(output), "Requires output supports VRR\n"); if (!has_vrr(output)) { -- 2.25.1