Re: [PATCH v5 1/5] usb: dwc3: Avoid unmapping USB requests if endxfer is not complete

From: Wesley Cheng
Date: Thu Sep 01 2022 - 15:10:45 EST


On 9/1/2022 7:10 AM, Greg KH wrote:
On Wed, Aug 31, 2022 at 11:32:38AM -0700, Wesley Cheng wrote:
If DWC3_EP_DELAYED_STOP is set during stop active transfers, then do not
continue attempting to unmap request buffers during dwc3_remove_requests().
This can lead to SMMU faults, as the controller has not stopped the
processing of the TRB. Defer this sequence to the EP0 out start, which
ensures that there are no pending SETUP transactions before issuing the
endxfer.

Reviewed-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>
Signed-off-by: Wesley Cheng <quic_wcheng@xxxxxxxxxxx>
---
drivers/usb/dwc3/core.h | 3 +++
drivers/usb/dwc3/ep0.c | 5 ++++-
drivers/usb/dwc3/gadget.c | 6 +++++-
3 files changed, 12 insertions(+), 2 deletions(-)

As the kernel-test robot reported, this patch doesn't even build. How
did you test it?

Sorry Greg, didn't get a chance to test it before submitting, but fixed the build errors in v6. I had initially missed the argument changes to the APIs.

V6 works as expected.

Thanks
Wesley Cheng