mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
USB fix for 5.14-rc6
Here is a single revert of a commit that caused problems in 5.14-rc5 for 5.14-rc6. It has been in linux-next almost all week, and has resolved the issues that were reported on lots of different systems that were not the platform that the change was originally tested on (gotta love SoC cores used in multiple devices from multiple vendors...) Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCYRf0Qg8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ynEBgCgg/t8I7hGF5+bi6qV82K/atVFgvkAnRLN9c43 nUXoVeo1RBk3tI+G31Cl =vpaV -----END PGP SIGNATURE----- Merge tag 'usb-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fix from Greg KH: "A single revert of a commit that caused problems in 5.14-rc5 for 5.14-rc6. It has been in linux-next almost all week, and has resolved the issues that were reported on lots of different systems that were not the platform that the change was originally tested on (gotta love SoC cores used in multiple devices from multiple vendors...)" * tag 'usb-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: Revert "usb: dwc3: gadget: Use list_replace_init() before traversing lists"
This commit is contained in:
commit
12f41321ce
1 changed files with 2 additions and 16 deletions
|
@ -1741,13 +1741,9 @@ static void dwc3_gadget_ep_cleanup_cancelled_requests(struct dwc3_ep *dep)
|
|||
{
|
||||
struct dwc3_request *req;
|
||||
struct dwc3_request *tmp;
|
||||
struct list_head local;
|
||||
struct dwc3 *dwc = dep->dwc;
|
||||
|
||||
restart:
|
||||
list_replace_init(&dep->cancelled_list, &local);
|
||||
|
||||
list_for_each_entry_safe(req, tmp, &local, list) {
|
||||
list_for_each_entry_safe(req, tmp, &dep->cancelled_list, list) {
|
||||
dwc3_gadget_ep_skip_trbs(dep, req);
|
||||
switch (req->status) {
|
||||
case DWC3_REQUEST_STATUS_DISCONNECTED:
|
||||
|
@ -1765,9 +1761,6 @@ static void dwc3_gadget_ep_cleanup_cancelled_requests(struct dwc3_ep *dep)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!list_empty(&dep->cancelled_list))
|
||||
goto restart;
|
||||
}
|
||||
|
||||
static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
|
||||
|
@ -2976,12 +2969,8 @@ static void dwc3_gadget_ep_cleanup_completed_requests(struct dwc3_ep *dep,
|
|||
{
|
||||
struct dwc3_request *req;
|
||||
struct dwc3_request *tmp;
|
||||
struct list_head local;
|
||||
|
||||
restart:
|
||||
list_replace_init(&dep->started_list, &local);
|
||||
|
||||
list_for_each_entry_safe(req, tmp, &local, list) {
|
||||
list_for_each_entry_safe(req, tmp, &dep->started_list, list) {
|
||||
int ret;
|
||||
|
||||
ret = dwc3_gadget_ep_cleanup_completed_request(dep, event,
|
||||
|
@ -2989,9 +2978,6 @@ static void dwc3_gadget_ep_cleanup_completed_requests(struct dwc3_ep *dep,
|
|||
if (ret)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!list_empty(&dep->started_list))
|
||||
goto restart;
|
||||
}
|
||||
|
||||
static bool dwc3_gadget_ep_should_continue(struct dwc3_ep *dep)
|
||||
|
|
Loading…
Reference in a new issue