On 7/10/26 02:52, Venkat Rao Bagalkote wrote:

On 10/07/26 1:31 pm, Venkat Rao Bagalkote wrote:

On 10/07/26 10:45 am, Venkat Rao Bagalkote wrote:

On 09/07/26 11:53 pm, Randy Dunlap wrote:

On 7/7/26 10:05 PM, Venkat Rao Bagalkote wrote:
Greetings!!!

linux-next is failing to build for me with:

ERROR: modpost: too long symbol
"amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers"
[drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/tests/ amdgpu_dm_plane_test.ko]

make[2]: *** [scripts/Makefile.modpost:147: Module.symvers] Error 1
make[1]: *** [Makefile:2165: modpost] Error 2
make: *** [Makefile:248: __sub-make] Error 2

The failure occurs during modpost while building:

drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.ko

This appears to be a regression in the AMD display KUnit test code.

Could someone please take a look?


If you happen to fix this, please add below tag.

Reported-by: Venkat Rao Bagalkote <[email protected]>
Hi,
I cannot reproduce this when using gcc v15.3.0.

Which compiler & version are you using?

Hello,

I am seeing this across below mentioned gcc version.


gcc (GCC) 14.3.1 20251022 (Red Hat 14.3.1-4)
gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11)
gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-7)


Attched is the .config file.

Git bisect is pointing to below commit as first bad commit.


# git bisect bad
2b147895be109e0860269a7a72c697cdf049a885 is the first bad commit
commit 2b147895be109e0860269a7a72c697cdf049a885 (HEAD)
Author: Bhawanpreet Lakha <[email protected]>
Date:   Fri Jun 12 16:12:21 2026 -0400

    drm/amd/display: Add kunit tests for amdgpu_dm_plane

    Add kunit tests for some functions in amdgpu_dm_plane.

    Assisted-by: Copilot:Claude-Opus-4.8
    Reviewed-by: Alex Hung <[email protected]>
    Signed-off-by: Bhawanpreet Lakha <[email protected]>
    Signed-off-by: George Zhang <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>

 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c   |  115 ++++ ++-----
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h   |   51 +++++
 drivers/gpu/drm/amd/display/amdgpu_dm/tests/Makefile  |    2 +
 drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c | 1204 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 1325 insertions(+), 47 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/tests/ amdgpu_dm_plane_test.c



Hi,

I bisected this build failure and found that it is caused by the exported
KUnit symbols:

   amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers()
   amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers()

modpost rejects the resulting exported symbol name with:

   ERROR: modpost: too long symbol
   "amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers"

I tested the following approach locally, which simply shortens the helper
names to:

   amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers()
   amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers()

and updated all corresponding users and KUnit references. This resolves the
build issue for me and does not appear to introduce any functional changes.

Does this look like an acceptable fix?

If so, I'll prepare and send a formal patch with proper changelog.

This looks to me. Thanks for catching this.




diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c b/ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 1b564cfe2120..b58225338bc4 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
@@ -328,7 +328,7 @@ STATIC_IFN_KUNIT int amdgpu_dm_plane_validate_dcc(struct amdgpu_device *adev,
  }
  EXPORT_IF_KUNIT(amdgpu_dm_plane_validate_dcc);

-STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_device *adev, +STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(struct amdgpu_device *adev,
              const struct amdgpu_framebuffer *afb,
              const enum surface_pixel_format format,
              const enum dc_rotation_angle rotation,
@@ -378,9 +378,9 @@ STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(s

         return ret;
  }
- EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers);
+EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers);

-STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct amdgpu_device *adev, +STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(struct amdgpu_device *adev,
               const struct amdgpu_framebuffer *afb,
               const enum surface_pixel_format format,
               const enum dc_rotation_angle rotation,
@@ -419,7 +419,7 @@ STATIC_IFN_KUNIT int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(

         return ret;
  }
- EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers);
+EXPORT_IF_KUNIT(amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers);

 static void amdgpu_dm_plane_add_gfx10_1_modifiers(const struct amdgpu_device *adev,
                                                   uint64_t **mods,
@@ -927,14 +927,14 @@ int amdgpu_dm_plane_fill_plane_buffer_attributes(struct amdgpu_device *adev,
         }

         if (adev->family == AMDGPU_FAMILY_GC_12_0_0) {
-               ret = amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(adev, afb, format, +               ret = amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(adev, afb, format,
                rotation, plane_size,
                tiling_info, dcc,
                address);
                 if (ret)
                         return ret;
         } else if (adev->family >= AMDGPU_FAMILY_AI) {
-               ret = amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(adev, afb, format, +               ret = amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(adev, afb, format,
               rotation, plane_size,
               tiling_info, dcc,
               address);
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h b/ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
index 911fb2d73e22..55c33e051aee 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.h
@@ -92,7 +92,7 @@ int amdgpu_dm_plane_get_plane_modifiers(struct amdgpu_device *adev,
  int amdgpu_dm_plane_get_plane_formats(const struct drm_plane *plane,
                                      const struct dc_plane_cap *plane_cap,
                                       uint32_t *formats, int max_formats);
-int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_device *adev, +int amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(struct amdgpu_device *adev,
const struct amdgpu_framebuffer *afb,
const enum surface_pixel_format format,
const enum dc_rotation_angle rotation,
@@ -100,7 +100,7 @@ int amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(struct amdgpu_devi
struct dc_tiling_info *tiling_info,
struct dc_plane_dcc_param *dcc,
struct dc_plane_address *address);
-int amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(struct amdgpu_device *adev, +int amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(struct amdgpu_device *adev,
  const struct amdgpu_framebuffer *afb,
  const enum surface_pixel_format format,
  const enum dc_rotation_angle rotation,
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/ amdgpu_dm_plane_test.c b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/ amdgpu_dm_plane_test.c
index 46c9af432e37..fc84f5a08596 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/tests/amdgpu_dm_plane_test.c
@@ -579,7 +579,7 @@ static void dm_test_fill_gfx12_plane_attributes_from_modifiers(struct kunit *tes
         plane_size.surface_size.height = 1080;

         KUNIT_EXPECT_EQ(test,
-  amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers(
+  amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers(
                         adev, afb, SURFACE_PIXEL_FORMAT_GRPH_ARGB8888,
                        ROTATION_ANGLE_0, &plane_size, &tiling_info, &dcc, &address),
                         0);
@@ -623,7 +623,7 @@ static void dm_test_fill_gfx9_plane_attributes_from_modifiers(struct kunit *test
         afb->base.modifier = DRM_FORMAT_MOD_LINEAR;

         KUNIT_EXPECT_EQ(test,
-  amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers(
+  amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers(
                         adev, afb, SURFACE_PIXEL_FORMAT_GRPH_ARGB8888,
                        ROTATION_ANGLE_0, &plane_size, &tiling_info, &dcc, &address),
                         0);
@@ -1187,9 +1187,9 @@ static struct kunit_case amdgpu_dm_plane_test_cases[] = {
         KUNIT_CASE(dm_test_get_cursor_position),
         /* amdgpu_dm_plane_format_mod_supported() */
         KUNIT_CASE(dm_test_format_mod_supported),
-       /* amdgpu_dm_plane_fill_gfx12_plane_attributes_from_modifiers() */
+       /* amdgpu_dm_plane_fill_gfx12_attrs_from_modifiers() */
KUNIT_CASE(dm_test_fill_gfx12_plane_attributes_from_modifiers),
-       /* amdgpu_dm_plane_fill_gfx9_plane_attributes_from_modifiers() */
+       /* amdgpu_dm_plane_fill_gfx9_attrs_from_modifiers() */
KUNIT_CASE(dm_test_fill_gfx9_plane_attributes_from_modifiers),
         /* amdgpu_dm_plane_helper_check_state() */
         KUNIT_CASE(dm_test_helper_check_state_viewport_reject),
(END)


Regards,

Venkat.


# git bisect log
git bisect start
# status: waiting for both good and bad commits
# bad: [5c73cd9f0819c1c44e373e3dabb68318b1de1a12] Add linux-next specific files for 20260707
git bisect bad 5c73cd9f0819c1c44e373e3dabb68318b1de1a12
# good: [8cdeaa50eae8dad34885515f62559ee83e7e8dda] Linux 7.2-rc2
git bisect good 8cdeaa50eae8dad34885515f62559ee83e7e8dda
# good: [aac7863446a8e0cf380f4a5087bc3cdc9b8c14c0] Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/herbert/ cryptodev-2.6.git
git bisect good aac7863446a8e0cf380f4a5087bc3cdc9b8c14c0
# bad: [fe28d02cde5372d7f71cc6132ccdef37a98ac750] Merge branch 'for- linux-next' of https://gitlab.freedesktop.org/drm/i915/kernel.git
git bisect bad fe28d02cde5372d7f71cc6132ccdef37a98ac750
# good: [0639cb26862afe4e35a689a8b5df8b9117c19f52] Merge tag 'drm-xe- next-2026-07-03' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-next
git bisect good 0639cb26862afe4e35a689a8b5df8b9117c19f52
# good: [4e9c8a9c322427055c4892183d266ba391af1bc8] drm/amdkfd: drop struct kfd_signal_page wrapper
git bisect good 4e9c8a9c322427055c4892183d266ba391af1bc8
# bad: [ea33aa1545535fdb4c1a208b7bfd63314c3a4aa2] drm/amdgpu: Drop legacy ACA log RAS error data code
git bisect bad ea33aa1545535fdb4c1a208b7bfd63314c3a4aa2
# good: [a17e79d01f22182a9fcbe79fcbe2ad1477d43e0f] drm/amd/pm: Validate pp_table header before reading size
git bisect good a17e79d01f22182a9fcbe79fcbe2ad1477d43e0f
# bad: [7a561c2b1b63abcffb55f625c0d0adb68ab2961a] drm/amd/display: Simplify boolean checks
git bisect bad 7a561c2b1b63abcffb55f625c0d0adb68ab2961a
# good: [53ef33c084c5778cc2dcd1efff25e31b6e231141] drm/amd/pm: Validate Tonga PPTable subtable bounds
git bisect good 53ef33c084c5778cc2dcd1efff25e31b6e231141
# good: [fe5966d4fdcbed91e6b3478ea6c89d9915d6ed4a] drm/amdkfd: move TBA/TMA from system to device memory
git bisect good fe5966d4fdcbed91e6b3478ea6c89d9915d6ed4a
# good: [7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0] drm/amd/display: Replace repeated no-native-i2c checks with force_i2c_over_aux field
git bisect good 7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0
# good: [88ae862060f05cd8279e764832f04eafafa505d8] drm/amd/display: Add more KUnit tests for amdgpu_dm_colorop
git bisect good 88ae862060f05cd8279e764832f04eafafa505d8
# bad: [2b147895be109e0860269a7a72c697cdf049a885] drm/amd/display: Add kunit tests for amdgpu_dm_plane
git bisect bad 2b147895be109e0860269a7a72c697cdf049a885
# first bad commit: [2b147895be109e0860269a7a72c697cdf049a885] drm/ amd/display: Add kunit tests for amdgpu_dm_plane



Regards,

Venkat.


Reply via email to