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(). Signed-off-by: Boris Arzur <boris@xxxxxxxxx> --- drivers/usb/dwc2/hcd_intr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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) { /* * A periodic transfer halted with no other -- 2.23.0