Le 10/07/2026 à 10:52, Venkat Rao Bagalkote a écrit :

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

Comes from here I guess:

/**
 * Record CRCs for unresolved symbols
 **/
static void add_versions(struct buffer *b, struct module *mod)
{
        struct symbol *s;

        if (!basic_modversions)
                return;

        buf_printf(b, "\n");
        buf_printf(b, "static const struct modversion_info ____versions[]\n");
        buf_printf(b, "__used __section(\"__versions\") = {\n");

        list_for_each_entry(s, &mod->unresolved_symbols, list) {
                if (!s->module)
                        continue;
                if (!s->crc_valid) {
                        warn("\"%s\" [%s.ko] has no CRC!\n",
                                s->name, mod->name);
                        continue;
                }
                if (strlen(s->name) >= MODULE_NAME_LEN) {
                        if (extended_modversions) {
                                /* this symbol will only be in the extended 
info */
                                continue;
                        } else {
                                error("too long symbol \"%s\" [%s.ko]\n",
                                      s->name, mod->name);
                                break;
                        }
                }
                buf_printf(b, "\t{ 0x%08x, \"%s\" },\n",
                           s->crc, s->name);
        }

        buf_printf(b, "};\n");
}

Where:

include/linux/module.h:#define MODULE_NAME_LEN __MODULE_NAME_LEN
include/linux/moduleparam.h:#define __MODULE_NAME_LEN (64 - sizeof(unsigned long))


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?

Yes most likely. The alternat fix would be to increase MODULE_NAME_LEN but that would mean increasing the size of several tables for just 2 symbols which are too long ?

Christophe


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



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://eur01.safelinks.protection.outlook.com/? url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fherbert%2Fcryptodev-2.6.git&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cc5e7652b93e744143d1c08dede60b05d%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639192704027107259%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=4ydIlQe8Bb3klMVrBmwYKnhK77MZUni2JbITolWJGzM%3D&reserved=0
git bisect good aac7863446a8e0cf380f4a5087bc3cdc9b8c14c0
# bad: [fe28d02cde5372d7f71cc6132ccdef37a98ac750] Merge branch 'for- linux-next' of https://eur01.safelinks.protection.outlook.com/? url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Fi915%2Fkernel.git&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cc5e7652b93e744143d1c08dede60b05d%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639192704027140053%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=BMbR68vSHUPlm7pZCpn7niZgDfYLQWogR6OX7yiaGEw%3D&reserved=0
git bisect bad fe28d02cde5372d7f71cc6132ccdef37a98ac750
# good: [0639cb26862afe4e35a689a8b5df8b9117c19f52] Merge tag 'drm-xe- next-2026-07-03' of https://eur01.safelinks.protection.outlook.com/? url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Fxe%2Fkernel&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7Cc5e7652b93e744143d1c08dede60b05d%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639192704027161672%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=LumG%2BM7C9w7R38jDyGYGHjbhjb6LZ3y%2F2J%2F82%2FZciZo%3D&reserved=0 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