Re: [PATCH 07/10] staging: dwc2: Don't always return IRQ_HANDLED in dwc2_hcd_intr()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Felipe,

> "by by this commit message" ??
Hmm, not sure what my brain was doing there. Will be fixed in the next version.

> > --- a/drivers/staging/dwc2/hcd_intr.c
> > +++ b/drivers/staging/dwc2/hcd_intr.c
> > @@ -2083,7 +2083,8 @@ irqreturn_t dwc2_hcd_intr(struct dwc2_hsotg *hsotg)
> >  			return 0;
> 
> this return 0 seems bogus...
How do you mean bogus? Do you mean that the entire construct:

                  if (!gintsts) {
                          spin_unlock(&hsotg->lock);
                          return retval;
                  }

could be removed? Or do you mean (as Paul already pointed out in
another commit) that the 0 should be retval (or at least IRQ_NONE)?

> > -		retval = IRQ_HANDLED;
> > +		if (gintsts & GINTMSK_HOST)
> > +			retval = IRQ_HANDLED;
> 
> you gotta be really careful with this sort of changes, it can force IRQ
> subsystem to disable your IRQ line.
Only if you actually trigger IRQs that you don't handle, I think. Given
that GINTMSK_HOST contains all the host interrupts that are ever
disabled (and also all the ones that are handled by the interrupt
handler), I think this should be safe. I would say that setting the flag
without actually handling anything can also cause problems, especially
when an irq line is shared (not sure if/when that's possible, though)?

Gr.

Matthijs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux