From patchwork Tue Nov 5 03:29:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boris ARZUR X-Patchwork-Id: 11226911 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 124581747 for ; Tue, 5 Nov 2019 03:34:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EDD2020818 for ; Tue, 5 Nov 2019 03:34:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729996AbfKEDex (ORCPT ); Mon, 4 Nov 2019 22:34:53 -0500 Received: from funyu.konbu.org ([51.15.241.64]:51872 "EHLO funyu.konbu.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728910AbfKEDew (ORCPT ); Mon, 4 Nov 2019 22:34:52 -0500 X-Greylist: delayed 316 seconds by postgrey-1.27 at vger.kernel.org; Mon, 04 Nov 2019 22:34:52 EST Received: from tungsten (178.231.214.202.rev.vmobile.jp [202.214.231.178]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by funyu.konbu.org (Postfix) with ESMTPSA id 9397F280DA5; Tue, 5 Nov 2019 03:29:28 +0000 (UTC) Date: Tue, 5 Nov 2019 12:29:22 +0900 From: Boris ARZUR To: linux-usb@vger.kernel.org Cc: Felipe Balbi , Greg Kroah-Hartman , Minas Harutyunyan , Grigor Tovmasyan , Gevorg Sahakyan , John Youn , Sevak Arakelyan , William Wu , Dmitry Torokhov , Douglas Anderson Subject: [PATCH] usb: dwc2: extend treatment for incomplete transfer Message-ID: <20191105032922.GA3041@tungsten> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.12.2 (2019-09-21) Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org 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 --- 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) { /*