FAILED: patch "[PATCH] usb: dwc3: gadget: Reclaim extra TRBs after request" failed to apply to 5.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 690e5c2dc29f8891fcfd30da67e0d5837c2c9df5 Mon Sep 17 00:00:00 2001
From: Thinh Nguyen <[email protected]>
Date: Thu, 24 Sep 2020 01:21:24 -0700
Subject: [PATCH] usb: dwc3: gadget: Reclaim extra TRBs after request
completion
An SG request may be partially completed (due to no available TRBs). Don't reclaim extra TRBs and clear the needs_extra_trb flag until the request is fully completed. Otherwise, the driver will reclaim the wrong TRB.
Fixes 1f512119a08c ("usb: dwc3: gadget: add remaining sg entries to ring")
Signed-off-by Thinh Nguyen <[email protected]>
Signed-off-by Felipe Balbi <[email protected]>
drivers/usb/dwc3/gadget.c +5 -5
@@ -2744,6 +2744,11 @@ static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep, ret =dwc3_gadget_ep_reclaim_trb_linear (dep, req, event, status); + req->request.actual = req->request.length - req->remaining; + +if (!dwc3_gadget_ep_request_completed (req)) + goto out; +if (req->needs_extra_trb) {unsigned int maxp =usb_endpoint_maxp (dep->endpoint.desc);
@@ -2759,11 +2764,6 @@ static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep, req->needs_extra_trb = false; } - req->request.actual = req->request.length - req->remaining; - -if (!dwc3_gadget_ep_request_completed (req)) - goto out; -dwc3_gadget_giveback (dep, req, status); out: