From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C148A377EA1 for ; Mon, 22 Jun 2026 12:38:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782131893; cv=none; b=Xupcs5k0NYxZcs6waIVEjlPLN8AUHQbbZb44kRhlPMWlMTBnw4Ep3oqLUDW0fI4L3C8Hc4eAU3E/usrEPTPHHMRaNprMuB4YHM6VOqgViP5emXjt4x3zwVzDfg5MI7n6e2Je4SFai7+l/DiSvYz5dQ0UjiyKYKf9+oJbepGclw0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782131893; c=relaxed/simple; bh=nbaiICTGlLkWpB1NDx3V3O3ctFbhztSkZ0MGGNnEIkI=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=lSimxGNkmDtfU4OhFnPKpIxqCC/3GksYQVzPnr2cIqvi/w9fMte3ruHxU6Llgyaxp5rOToCsTHVvZs6yBfNNPAtE4ZRKFJWp0ZHkhKxWtz8LPyOgcEYR08V/nuHlSlnT+xt2xn3R18ECKh+/qZTi/C0baa4tzwQB3d9e+XDeueE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HBkqTNIE; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HBkqTNIE" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B07B1F000E9; Mon, 22 Jun 2026 12:38:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1782131891; bh=aLPqKAV7NdOOeAs34uEEPNQIcuUUtHD4+t3qpP0ZBqM=; h=From:To:Cc:Subject:Date; b=HBkqTNIEGjJS5hE5R8YGUecnvZvxQ7ddtBHMiP7EKEWMM9OzJhNrBEcpW8zpRoUab c9kjjbUfPmR7kEbS0sYhrxgxrCeYlVXC0nzksTNwVVbYchnMDLz+iwxZgD0eWXRbUU 3RpXyhVdjIAFp0LdF4dW7Uo12KCtrfuk8OdywQnQ+Ip1xOSYyJWQNIeolZfnO2V05m s+wtx1P+CgGhESs+dWV0uD9LTM6u5eY7CAxEsAzScigQfpPLUCtIP/nuhhCHT5XNrE gzmF+W+pQv7aNUMCsWErqDeZxevQmQ4ZjK/1VYelrWxhL6F9eoVL+6yPn5opWxAtVV onz/U84y7K4BQ== From: Arnd Bergmann To: Harry Wentland , Leo Li , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter , Alex Hung , Chenyu Chen , Bhawanpreet Lakha , Aurabindo Pillai Cc: Arnd Bergmann , Rodrigo Siqueira , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/amd/display: kunit: move dc_link objects off stack Date: Mon, 22 Jun 2026 14:36:42 +0200 Message-Id: <20260622123659.2221930-1-arnd@kernel.org> X-Mailer: git-send-email 2.39.5 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Arnd Bergmann 'struct dc_link' is too large to be on the kernel stack, with every instance causing a build time warning in some configurations: drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/tests/amdgpu_dm_connector_test.c: In function 'dm_test_subconnector_type_none': drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/tests/amdgpu_dm_connector_test.c:36:1: error: the frame size of 1608 bytes is larger than 1280 bytes [-Werror=frame-larger-than=] 36 | } drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c: In function 'dm_mst_test_needs_dsc_aux_workaround_zero_sink_count': drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c:156:1: error: the frame size of 1584 bytes is larger than 1280 bytes [-Werror=frame-larger-than=] 156 | } Since the tests do not need to run concurrently, just make it a per-file static object that gets reinitialized for each test case. Fixes: a895eb57a55f drm/amd/display: Add KUnit tests for amdgpu_dm_connector Fixes: 1c37d1b6c741 drm/amd/display: Add KUnit tests for amdgpu_dm_mst_types Signed-off-by: Arnd Bergmann --- The patches causing this seem to have appeared were not in linux-next during the first half of the merge window, not sure why they are there, but in case these are intended for 7.2, it still needs to get fixed. --- .../amdgpu_dm/tests/amdgpu_dm_connector_test.c | 17 +++++++++-------- .../amdgpu_dm/tests/amdgpu_dm_mst_types_test.c | 14 ++++++++------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c index 34e40d2a9d2c..e2c0c2a934a6 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_connector_test.c @@ -22,6 +22,7 @@ #include "include/grph_object_id.h" /* Tests for get_subconnector_type() */ +static struct dc_link link; /** * dm_test_subconnector_type_none - Test Subconnector type none @@ -29,7 +30,7 @@ */ static void dm_test_subconnector_type_none(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_NONE; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_Native); @@ -41,7 +42,7 @@ static void dm_test_subconnector_type_none(struct kunit *test) */ static void dm_test_subconnector_type_vga(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_VGA_CONVERTER; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_VGA); @@ -53,7 +54,7 @@ static void dm_test_subconnector_type_vga(struct kunit *test) */ static void dm_test_subconnector_type_dvi_converter(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_DVI_CONVERTER; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_DVID); @@ -65,7 +66,7 @@ static void dm_test_subconnector_type_dvi_converter(struct kunit *test) */ static void dm_test_subconnector_type_dvi_dongle(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_DVI_DONGLE; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_DVID); @@ -77,7 +78,7 @@ static void dm_test_subconnector_type_dvi_dongle(struct kunit *test) */ static void dm_test_subconnector_type_hdmi_converter(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_HDMI_CONVERTER; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_HDMIA); @@ -89,7 +90,7 @@ static void dm_test_subconnector_type_hdmi_converter(struct kunit *test) */ static void dm_test_subconnector_type_hdmi_dongle(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_HDMI_DONGLE; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_HDMIA); @@ -101,7 +102,7 @@ static void dm_test_subconnector_type_hdmi_dongle(struct kunit *test) */ static void dm_test_subconnector_type_mismatched(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = DISPLAY_DONGLE_DP_HDMI_MISMATCHED_DONGLE; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_Unknown); @@ -113,7 +114,7 @@ static void dm_test_subconnector_type_mismatched(struct kunit *test) */ static void dm_test_subconnector_type_default_unknown(struct kunit *test) { - struct dc_link link = {}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.dongle_type = (typeof(link.dpcd_caps.dongle_type))0x7f; KUNIT_EXPECT_EQ(test, (int)get_subconnector_type(&link), (int)DRM_MODE_SUBCONNECTOR_Unknown); diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c index e3b171992be1..f1f728acd373 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_mst_types_test.c @@ -45,6 +45,8 @@ static ssize_t dm_mst_test_aux_transfer(struct drm_dp_aux *aux, } } +static struct dc_link link; + /* Tests for needs_dsc_aux_workaround */ /** @@ -56,7 +58,7 @@ static ssize_t dm_mst_test_aux_transfer(struct drm_dp_aux *aux, */ static void dm_mst_test_needs_dsc_aux_workaround_match(struct kunit *test) { - struct dc_link link = {0}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.branch_dev_id = DP_BRANCH_DEVICE_ID_90CC24; link.dpcd_caps.dpcd_rev.raw = DPCD_REV_14; @@ -74,7 +76,7 @@ static void dm_mst_test_needs_dsc_aux_workaround_match(struct kunit *test) */ static void dm_mst_test_needs_dsc_aux_workaround_rev12(struct kunit *test) { - struct dc_link link = {0}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.branch_dev_id = DP_BRANCH_DEVICE_ID_90CC24; link.dpcd_caps.dpcd_rev.raw = DPCD_REV_12; @@ -92,7 +94,7 @@ static void dm_mst_test_needs_dsc_aux_workaround_rev12(struct kunit *test) */ static void dm_mst_test_needs_dsc_aux_workaround_wrong_dev_id(struct kunit *test) { - struct dc_link link = {0}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.branch_dev_id = 0x123456; link.dpcd_caps.dpcd_rev.raw = DPCD_REV_14; @@ -110,7 +112,7 @@ static void dm_mst_test_needs_dsc_aux_workaround_wrong_dev_id(struct kunit *test */ static void dm_mst_test_needs_dsc_aux_workaround_wrong_rev(struct kunit *test) { - struct dc_link link = {0}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.branch_dev_id = DP_BRANCH_DEVICE_ID_90CC24; link.dpcd_caps.dpcd_rev.raw = 0x11; /* DPCD 1.1 */ @@ -128,7 +130,7 @@ static void dm_mst_test_needs_dsc_aux_workaround_wrong_rev(struct kunit *test) */ static void dm_mst_test_needs_dsc_aux_workaround_low_sink_count(struct kunit *test) { - struct dc_link link = {0}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.branch_dev_id = DP_BRANCH_DEVICE_ID_90CC24; link.dpcd_caps.dpcd_rev.raw = DPCD_REV_14; @@ -146,7 +148,7 @@ static void dm_mst_test_needs_dsc_aux_workaround_low_sink_count(struct kunit *te */ static void dm_mst_test_needs_dsc_aux_workaround_zero_sink_count(struct kunit *test) { - struct dc_link link = {0}; + memset(&link, 0, sizeof(link)); link.dpcd_caps.branch_dev_id = DP_BRANCH_DEVICE_ID_90CC24; link.dpcd_caps.dpcd_rev.raw = DPCD_REV_14; -- 2.39.5