All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.10.y] drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links
@ 2025-04-16  1:18 jianqi.ren.cn
  2025-04-16 14:24 ` Sasha Levin
  0 siblings, 1 reply; 2+ messages in thread
From: jianqi.ren.cn @ 2025-04-16  1:18 UTC (permalink / raw)
  To: gregkh, stable
  Cc: patches, linux-kernel, jianqi.ren.cn, harry.wentland, sunpeng.li,
	Rodrigo.Siqueira, alexander.deucher, christian.koenig, Xinhui.Pan,
	airlied, daniel, sashal, chiahsuan.chung, alex.hung,
	mario.limonciello, hersenxs.wu, Wayne.Lin, amd-gfx, dri-devel,
	daniel.wheeler

From: Hersen Wu <hersenxs.wu@amd.com>

[ Upstream commit cf8b16857db702ceb8d52f9219a4613363e2b1cf ]

[Why]
Coverity report OVERRUN warning. There are
only max_links elements within dc->links. link
count could up to AMDGPU_DM_MAX_DISPLAY_INDEX 31.

[How]
Make sure link count less than max_links.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
[Minor conflict resolved due to code context change. And the macro MAX_LINKS
 is introduced by Commit 60df5628144b ("drm/amd/display: handle invalid
 connector indices") after 6.10. So here we still use the original array
 length MAX_PIPES * 2]
Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
Verified the build test
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 50921b340b88..69b3f1dc43e5 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3397,17 +3397,17 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
 			goto fail;
 		}
 
+	if (link_cnt > (MAX_PIPES * 2)) {
+		DRM_ERROR(
+			"KMS: Cannot support more than %d display indexes\n",
+				MAX_PIPES * 2);
+		goto fail;
+	}
+
 	/* loops over all connectors on the board */
 	for (i = 0; i < link_cnt; i++) {
 		struct dc_link *link = NULL;
 
-		if (i > AMDGPU_DM_MAX_DISPLAY_INDEX) {
-			DRM_ERROR(
-				"KMS: Cannot support more than %d display indexes\n",
-					AMDGPU_DM_MAX_DISPLAY_INDEX);
-			continue;
-		}
-
 		aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
 		if (!aconnector)
 			goto fail;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 5.10.y] drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links
  2025-04-16  1:18 [PATCH 5.10.y] drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links jianqi.ren.cn
@ 2025-04-16 14:24 ` Sasha Levin
  0 siblings, 0 replies; 2+ messages in thread
From: Sasha Levin @ 2025-04-16 14:24 UTC (permalink / raw)
  To: stable; +Cc: jianqi.ren.cn, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: cf8b16857db702ceb8d52f9219a4613363e2b1cf

WARNING: Author mismatch between patch and upstream commit:
Backport author: <jianqi.ren.cn@windriver.com>
Commit author: Hersen Wu<hersenxs.wu@amd.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Not found
6.1.y | Not found
5.15.y | Not found

Note: The patch differs from the upstream commit:
---
1:  cf8b16857db70 ! 1:  47d9726408c6d drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links
    @@ Metadata
      ## Commit message ##
         drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links
     
    +    [ Upstream commit cf8b16857db702ceb8d52f9219a4613363e2b1cf ]
    +
         [Why]
         Coverity report OVERRUN warning. There are
         only max_links elements within dc->links. link
    @@ Commit message
         Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
         Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
         Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    +    [Minor conflict resolved due to code context change. And the macro MAX_LINKS
    +     is introduced by Commit 60df5628144b ("drm/amd/display: handle invalid
    +     connector indices") after 6.10. So here we still use the original array
    +     length MAX_PIPES * 2]
    +    Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
    +    Signed-off-by: He Zhe <zhe.he@windriver.com>
     
      ## drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ##
     @@ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c: static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
    + 			goto fail;
      		}
    - 	}
      
    -+	if (link_cnt > MAX_LINKS) {
    ++	if (link_cnt > (MAX_PIPES * 2)) {
     +		DRM_ERROR(
     +			"KMS: Cannot support more than %d display indexes\n",
    -+				MAX_LINKS);
    ++				MAX_PIPES * 2);
     +		goto fail;
     +	}
     +
    @@ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c: static int amdgpu_dm_initiali
     -			continue;
     -		}
     -
    - 		link = dc_get_link_at_index(dm->dc, i);
    - 
    - 		if (link->connector_signal == SIGNAL_TYPE_VIRTUAL) {
    + 		aconnector = kzalloc(sizeof(*aconnector), GFP_KERNEL);
    + 		if (!aconnector)
    + 			goto fail;
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.10.y       |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-04-16 14:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-16  1:18 [PATCH 5.10.y] drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links jianqi.ren.cn
2025-04-16 14:24 ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.