diff options
| author | Mario Limonciello <mario.limonciello@amd.com> | 2025-09-24 19:16:22 +0300 | 
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2025-09-25 22:53:55 +0300 | 
| commit | 123a1750c5e0dcbfec953647045947be9620a7d8 (patch) | |
| tree | be0e8cab896bf55a19115514fd0400e602002a7e /drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | |
| parent | 1f721ebcf312df88c6da6457e0ff21c33613f73c (diff) | |
| download | linux-123a1750c5e0dcbfec953647045947be9620a7d8.tar.xz | |
drm/amd: Use dynamic array size declaration for amdgpu_connector_add_common_modes()
[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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c index 9b915f11ccac..5e2831ba9730 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c @@ -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) | 
