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