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...)
>
> > 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);
>