Hi Boris, On Tue, Nov 05, 2019 at 12:29:22PM +0900, Boris ARZUR wrote: > Channel halt can happen with BULK endpoints when the > cpu is under high load. Treating it as an error leads > to a null-pointer dereference in dwc2_free_dma_aligned_buffer(). > good find, and good analysis. We stated to see this problem as well in the latest ChromeOS kernel. I am still trying understand what exactly happens. To do that, I'll need to be able to reproduce the problem. Maybe you can help me. How do you tether your phone through USB ? Thanks, Guenter > Signed-off-by: Boris Arzur <boris@xxxxxxxxx> > --- > drivers/usb/dwc2/hcd_intr.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > * A periodic transfer halted with no other > -- > 2.23.0 > > diff --git a/drivers/usb/dwc2/hcd_intr.c b/drivers/usb/dwc2/hcd_intr.c > index a052d39b4375..697fed530aeb 100644 > --- a/drivers/usb/dwc2/hcd_intr.c > +++ b/drivers/usb/dwc2/hcd_intr.c > @@ -1944,7 +1944,8 @@ static void dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg > *hsotg, > */ > dwc2_hc_ack_intr(hsotg, chan, chnum, qtd); > } else { > - if (chan->ep_type == USB_ENDPOINT_XFER_INT || > + if (chan->ep_type == USB_ENDPOINT_XFER_BULK || > + chan->ep_type == USB_ENDPOINT_XFER_INT || > chan->ep_type == USB_ENDPOINT_XFER_ISOC) { > /*