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

Reply via email to