From 7aa0380017bbdb350b3c46f8e6b053462013edbc Mon Sep 17 00:00:00 2001 From: Alex Hung Date: Thu, 27 Aug 2026 16:36:56 -0600 Subject: [PATCH] drm/amd/display: Validate irq source in DM IRQ handler [Why] dc_interrupt_to_irq_source() can return DC_IRQ_SOURCE_INVALID for an unmapped src_id/src_data pair. The value was passed straight to dc_interrupt_ack() and used to index the DM high/low handler tables. [How] Reject sources outside the valid range before using them. Reviewed-by: Roman Li Signed-off-by: Alex Hung Signed-off-by: Ray Wu Tested-by: Dan Wheeler Signed-off-by: Alex Deucher --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c index 546911b152e4..f997a50c1293 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c @@ -713,6 +713,11 @@ STATIC_IFN_KUNIT int amdgpu_dm_irq_handler(struct amdgpu_device *adev, entry->src_id, entry->src_data[0]); + if (!DAL_VALID_IRQ_SRC_NUM(src)) { + DRM_ERROR("DM_IRQ: invalid irq_source:%d!\n", src); + return 0; + } + dc_interrupt_ack(adev->dm.dc, src); /* Call high irq work immediately */