]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd: Use dynamic array size declaration for amdgpu_connector_add_common_modes()
authorMario Limonciello <mario.limonciello@amd.com>
Wed, 24 Sep 2025 16:16:22 +0000 (11:16 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 25 Sep 2025 19:53:55 +0000 (15:53 -0400)
[Why]
Adding or removing a mode from common_modes[] can be fragile if a user
forgot to update the for loop boundaries.

[How]
Use ARRAY_SIZE() to detect size of the array and use that instead.

Cc: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Link: https://lore.kernel.org/r/20250924161624.1975819-4-mario.limonciello@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c

index 9b915f11ccacdfacc88c05c74fc92ba4c89f1663..5e2831ba9730a3a3d2f68697f823bb89768fb44e 100644 (file)
@@ -398,10 +398,11 @@ static void amdgpu_connector_add_common_modes(struct drm_encoder *encoder,
        struct drm_display_mode *mode = NULL;
        struct drm_display_mode *native_mode = &amdgpu_encoder->native_mode;
        int i;
+       int n;
        static const struct mode_size {
                int w;
                int h;
-       } common_modes[17] = {
+       } common_modes[] = {
                { 640,  480},
                { 720,  480},
                { 800,  600},
@@ -421,7 +422,9 @@ static void amdgpu_connector_add_common_modes(struct drm_encoder *encoder,
                {1920, 1200}
        };
 
-       for (i = 0; i < 17; i++) {
+       n = ARRAY_SIZE(common_modes);
+
+       for (i = 0; i < n; i++) {
                if (amdgpu_encoder->devices & (ATOM_DEVICE_TV_SUPPORT)) {
                        if (common_modes[i].w > 1024 ||
                            common_modes[i].h > 768)