On Fri, Jun 05, 2026 at 04:53:12AM +0200, Raag Jadav wrote:
> On Fri, Jun 05, 2026 at 04:25:48AM +0800, Jonathan Cavitt wrote:
> > Currently, all but one uses of generic_handle_irq_safe() report error
> > messages using .*_err_ratelimited() error reporting helper functions.
> > These helper functions declare their error messages in the following
> > form:
> > 
> > "error handling [COMPONENT NAME] irq: %d\n"
> > 
> > .*_err_ratelimited() already logs "error" as a part of the error
> > message, so declaring the error is redundant.  Reword it.
> > 
> > The last usage of generic_handle_irq_safe() is in xe_i2c_irq_present(),
> > and it currently lacks the same error reporting as in the other cases.
> > This is not intentional, so put some logging here.
> 
> Since you're here, also update these to xe_err_ratelimited() and
> xe_gt_err_ratelimited().

Atleast the xe ones.

Raag

> > v2:
> > - Use drm_err_ratelimited() correctly (jcavitt)
> > 
> > Suggested-by: Raag Jadav <[email protected]>
> > Signed-off-by: Jonathan Cavitt <[email protected]>
> > ---
> >  drivers/gpu/drm/i915/display/intel_lpe_audio.c | 2 +-
> >  drivers/gpu/drm/i915/gt/intel_gsc.c            | 2 +-
> >  drivers/gpu/drm/xe/xe_heci_gsc.c               | 4 ++--
> >  drivers/gpu/drm/xe/xe_i2c.c                    | 5 ++++-
> >  4 files changed, 8 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c 
> > b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> > index 022ad18044bf..e756ed1d1132 100644
> > --- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> > +++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> > @@ -265,7 +265,7 @@ void intel_lpe_audio_irq_handler(struct intel_display 
> > *display)
> >     ret = generic_handle_irq_safe(display->audio.lpe.irq);
> >     if (ret)
> >             drm_err_ratelimited(display->drm,
> > -                               "error handling LPE audio irq: %d\n", ret);
> > +                               "failed to handle LPE audio irq: %d\n", 
> > ret);
> >  }
> >  
> >  /**
> > diff --git a/drivers/gpu/drm/i915/gt/intel_gsc.c 
> > b/drivers/gpu/drm/i915/gt/intel_gsc.c
> > index 050d909fb4f8..c2d76b0bc5fe 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_gsc.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_gsc.c
> > @@ -286,7 +286,7 @@ static void gsc_irq_handler(struct intel_gt *gt, 
> > unsigned int intf_id)
> >  
> >     ret = generic_handle_irq_safe(gt->gsc.intf[intf_id].irq);
> >     if (ret)
> > -           gt_err_ratelimited(gt, "error handling GSC irq: %d\n", ret);
> > +           gt_err_ratelimited(gt, "failed to handle GSC irq: %d\n", ret);
> >  }
> >  
> >  void intel_gsc_irq_handler(struct intel_gt *gt, u32 iir)
> > diff --git a/drivers/gpu/drm/xe/xe_heci_gsc.c 
> > b/drivers/gpu/drm/xe/xe_heci_gsc.c
> > index 5af8903e10af..640db27137de 100644
> > --- a/drivers/gpu/drm/xe/xe_heci_gsc.c
> > +++ b/drivers/gpu/drm/xe/xe_heci_gsc.c
> > @@ -224,7 +224,7 @@ void xe_heci_gsc_irq_handler(struct xe_device *xe, u32 
> > iir)
> >  
> >     ret = generic_handle_irq_safe(xe->heci_gsc.irq);
> >     if (ret)
> > -           drm_err_ratelimited(&xe->drm, "error handling GSC irq: %d\n", 
> > ret);
> > +           drm_err_ratelimited(&xe->drm, "failed to handle GSC irq: %d\n", 
> > ret);
> >  }
> >  
> >  void xe_heci_csc_irq_handler(struct xe_device *xe, u32 iir)
> > @@ -244,5 +244,5 @@ void xe_heci_csc_irq_handler(struct xe_device *xe, u32 
> > iir)
> >  
> >     ret = generic_handle_irq_safe(xe->heci_gsc.irq);
> >     if (ret)
> > -           drm_err_ratelimited(&xe->drm, "error handling GSC irq: %d\n", 
> > ret);
> > +           drm_err_ratelimited(&xe->drm, "failed to handle GSC irq: %d\n", 
> > ret);
> >  }
> > diff --git a/drivers/gpu/drm/xe/xe_i2c.c b/drivers/gpu/drm/xe/xe_i2c.c
> > index 706783863d07..fa5fdf3a1024 100644
> > --- a/drivers/gpu/drm/xe/xe_i2c.c
> > +++ b/drivers/gpu/drm/xe/xe_i2c.c
> > @@ -177,12 +177,15 @@ static bool xe_i2c_irq_present(struct xe_device *xe)
> >  void xe_i2c_irq_handler(struct xe_device *xe, u32 master_ctl)
> >  {
> >     struct xe_mmio *mmio = xe_root_tile_mmio(xe);
> > +   int ret;
> >  
> >     if (!(master_ctl & I2C_IRQ) || !xe_i2c_irq_present(xe))
> >             return;
> >  
> >     /* Forward interrupt to I2C adapter */
> > -   generic_handle_irq_safe(xe->i2c->adapter_irq);
> > +   ret = generic_handle_irq_safe(xe->i2c->adapter_irq);
> > +   if (ret)
> > +           drm_err_ratelimited(&xe->drm, "failed to handle i2c irq: %d\n", 
> > ret);
> >  
> >     /* Deassert after I2C adapter clears the interrupt */
> >     xe_mmio_rmw32(mmio, I2C_CONFIG_CMD, 0, PCI_COMMAND_INTX_DISABLE);
> > -- 
> > 2.53.0
> > 

Reply via email to