Hi Paul,
> I would prefer to keep that part of the code as-is for now. I haven't
> quite convinced myself that the function can never be called with
> halt_status = DWC2_HC_XFER_URB_DEQUEUE.
Ok. For arguments sake, it should be easy to convince yourself:
dwc2_hc_chhltd_intr is a static function only referenced from
dwc2_hc_n_intr. The latter basically does:
static void dwc2_hc_n_intr(struct dwc2_hsotg *hsotg, int chnum)
{
(...)
if (chan->halt_status == DWC2_HC_XFER_URB_DEQUEUE) {
(...)
return;
}
(...)
dwc2_hc_chhltd_intr(hsotg, chan, chnum, qtd);
(...)
}
This of course only holds provided that halt_status doesn't get set to
DWC2_HC_XFER_URB_DEQUEUE in the meanwhile, which only happens in
dwc2_hcd_urb_enqueue. AFAIU it should be safe to assume the driver
doesn't start dequeuing urbs on its own in the interrupt handler.
> > Why change this function? AFAICS it's never called with qtd = NULL with
> > the patch?
>
> You're probably right, but I feel better adding a little defensive
> programming here, just in case.
Absolutely right, I was just wondering :-)
Gr.
Matthijs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html