On 01-09-2026 02:00, Rodrigo Vivi wrote:
On Thu, Aug 27, 2026 at 04:09:41PM +0530, Ghimiray, Himal Prasad wrote:

On 27-08-2026 15:47, Arvind Yadav wrote:
xe_irq_suspend() clears irq.enabled after disabling and synchronizing the
interrupts. irq_uninstall() currently returns when that flag is clear, so
a suspended device can skip free_irq() during teardown.

The managed uninstall action is registered only after the IRQ request
succeeds. Reset the interrupt registers only when interrupts are still
enabled, but always free the requested IRQs.

Fixes: 4d79a1266d4c ("drm/xe: Make irq enabled flag atomic")
Fixes seems incorrect, the early return was even before the change.
right, apparently since the very beginning:

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")

(I hate to use this initial as fixes nowadays, but it is the right one...)


Thanks for sharing the correct Fixes tag.

~Arvind


Cc: Matthew Brost <[email protected]>
Cc: Thomas Hellström <[email protected]>
Cc: Himal Prasad Ghimiray <[email protected]>
Cc: Rodrigo Vivi <[email protected]>
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Arvind Yadav <[email protected]>
---
   drivers/gpu/drm/xe/xe_irq.c | 6 ++----
   1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index 9e49e2241da4..d314993b14a1 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -786,10 +786,8 @@ static void irq_uninstall(void *arg)
   {
        struct xe_device *xe = arg;
-       if (!atomic_xchg(&xe->irq.enabled, 0))
-               return;
-
-       xe_irq_reset(xe);
+       if (atomic_xchg(&xe->irq.enabled, 0))
+               xe_irq_reset(xe);
Patch looks correct. With correct fixes-tag:

Reviewed-by: Himal Prasad Ghimiray <[email protected]>


        if (xe_device_has_msix(xe))
                xe_irq_msix_free(xe);

Reply via email to