]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch from 5.10 5.15 and 6.1
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jan 2024 19:09:50 +0000 (11:09 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jan 2024 19:09:50 +0000 (11:09 -0800)
queue-5.10/series
queue-5.10/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch [deleted file]
queue-5.15/series
queue-5.15/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch [deleted file]
queue-6.1/series
queue-6.1/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch [deleted file]

index 6e0b718c77293d9d0c1df534664dfba1cd7a420f..2c32b22a2c5ec745fb81c6ba29603f25621a902f 100644 (file)
@@ -210,7 +210,6 @@ binder-fix-race-between-mmput-and-do_exit.patch
 tick-sched-fix-idle-and-iowait-sleeptime-accounting-vs-cpu-hotplug.patch
 usb-phy-mxs-remove-config_usb_otg-condition-for-mxs_phy_is_otg_host.patch
 usb-dwc-ep0-update-request-status-in-dwc3_ep0_stall_restart.patch
-usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch
 revert-usb-dwc3-soft-reset-phy-on-probe-for-host.patch
 revert-usb-dwc3-don-t-reset-device-side-if-dwc3-was-configured-as-host-only.patch
 usb-chipidea-wait-controller-resume-finished-for-wakeup-irq.patch
diff --git a/queue-5.10/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch b/queue-5.10/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch
deleted file mode 100644 (file)
index a6be8e5..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From 730e12fbec53ab59dd807d981a204258a4cfb29a Mon Sep 17 00:00:00 2001
-From: Wesley Cheng <quic_wcheng@quicinc.com>
-Date: Wed, 6 Dec 2023 12:18:14 -0800
-Subject: usb: dwc3: gadget: Handle EP0 request dequeuing properly
-
-From: Wesley Cheng <quic_wcheng@quicinc.com>
-
-commit 730e12fbec53ab59dd807d981a204258a4cfb29a upstream.
-
-Current EP0 dequeue path will share the same as other EPs.  However, there
-are some special considerations that need to be made for EP0 transfers:
-
-  - EP0 transfers never transition into the started_list
-  - EP0 only has one active request at a time
-
-In case there is a vendor specific control message for a function over USB
-FFS, then there is no guarantee on the timeline which the DATA/STATUS stage
-is responded to.  While this occurs, any attempt to end transfers on
-non-control EPs will end up having the DWC3_EP_DELAY_STOP flag set, and
-defer issuing of the end transfer command.  If the USB FFS application
-decides to timeout the control transfer, or if USB FFS AIO path exits, the
-USB FFS driver will issue a call to usb_ep_dequeue() for the ep0 request.
-
-In case of the AIO exit path, the AIO FS blocks until all pending USB
-requests utilizing the AIO path is completed.  However, since the dequeue
-of ep0 req does not happen properly, all non-control EPs with the
-DWC3_EP_DELAY_STOP flag set will not be handled, and the AIO exit path will
-be stuck waiting for the USB FFS data endpoints to receive a completion
-callback.
-
-Fix is to utilize dwc3_ep0_reset_state() in the dequeue API to ensure EP0
-is brought back to the SETUP state, and ensures that any deferred end
-transfer commands are handled.  This also will end any active transfers
-on EP0, compared to the previous implementation which directly called
-giveback only.
-
-Fixes: fcd2def66392 ("usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue")
-Cc: stable <stable@kernel.org>
-Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
-Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-Link: https://lore.kernel.org/r/20231206201814.32664-1-quic_wcheng@quicinc.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/dwc3/gadget.c |   12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -1802,7 +1802,17 @@ static int dwc3_gadget_ep_dequeue(struct
-       list_for_each_entry(r, &dep->pending_list, list) {
-               if (r == req) {
--                      dwc3_gadget_giveback(dep, req, -ECONNRESET);
-+                      /*
-+                       * Explicitly check for EP0/1 as dequeue for those
-+                       * EPs need to be handled differently.  Control EP
-+                       * only deals with one USB req, and giveback will
-+                       * occur during dwc3_ep0_stall_and_restart().  EP0
-+                       * requests are never added to started_list.
-+                       */
-+                      if (dep->number > 1)
-+                              dwc3_gadget_giveback(dep, req, -ECONNRESET);
-+                      else
-+                              dwc3_ep0_reset_state(dwc);
-                       goto out;
-               }
-       }
index 28f9e9de0c74bee82eb8688ee8397739fc6dfc08..b6dcdee6eb181c68f6ef10430e0a19de3d300eb1 100644 (file)
@@ -252,7 +252,6 @@ binder-fix-race-between-mmput-and-do_exit.patch
 tick-sched-fix-idle-and-iowait-sleeptime-accounting-vs-cpu-hotplug.patch
 usb-phy-mxs-remove-config_usb_otg-condition-for-mxs_phy_is_otg_host.patch
 usb-dwc-ep0-update-request-status-in-dwc3_ep0_stall_restart.patch
-usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch
 revert-usb-dwc3-soft-reset-phy-on-probe-for-host.patch
 revert-usb-dwc3-don-t-reset-device-side-if-dwc3-was-configured-as-host-only.patch
 usb-chipidea-wait-controller-resume-finished-for-wakeup-irq.patch
diff --git a/queue-5.15/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch b/queue-5.15/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch
deleted file mode 100644 (file)
index fa427df..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From 730e12fbec53ab59dd807d981a204258a4cfb29a Mon Sep 17 00:00:00 2001
-From: Wesley Cheng <quic_wcheng@quicinc.com>
-Date: Wed, 6 Dec 2023 12:18:14 -0800
-Subject: usb: dwc3: gadget: Handle EP0 request dequeuing properly
-
-From: Wesley Cheng <quic_wcheng@quicinc.com>
-
-commit 730e12fbec53ab59dd807d981a204258a4cfb29a upstream.
-
-Current EP0 dequeue path will share the same as other EPs.  However, there
-are some special considerations that need to be made for EP0 transfers:
-
-  - EP0 transfers never transition into the started_list
-  - EP0 only has one active request at a time
-
-In case there is a vendor specific control message for a function over USB
-FFS, then there is no guarantee on the timeline which the DATA/STATUS stage
-is responded to.  While this occurs, any attempt to end transfers on
-non-control EPs will end up having the DWC3_EP_DELAY_STOP flag set, and
-defer issuing of the end transfer command.  If the USB FFS application
-decides to timeout the control transfer, or if USB FFS AIO path exits, the
-USB FFS driver will issue a call to usb_ep_dequeue() for the ep0 request.
-
-In case of the AIO exit path, the AIO FS blocks until all pending USB
-requests utilizing the AIO path is completed.  However, since the dequeue
-of ep0 req does not happen properly, all non-control EPs with the
-DWC3_EP_DELAY_STOP flag set will not be handled, and the AIO exit path will
-be stuck waiting for the USB FFS data endpoints to receive a completion
-callback.
-
-Fix is to utilize dwc3_ep0_reset_state() in the dequeue API to ensure EP0
-is brought back to the SETUP state, and ensures that any deferred end
-transfer commands are handled.  This also will end any active transfers
-on EP0, compared to the previous implementation which directly called
-giveback only.
-
-Fixes: fcd2def66392 ("usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue")
-Cc: stable <stable@kernel.org>
-Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
-Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-Link: https://lore.kernel.org/r/20231206201814.32664-1-quic_wcheng@quicinc.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/dwc3/gadget.c |   12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -2022,7 +2022,17 @@ static int dwc3_gadget_ep_dequeue(struct
-       list_for_each_entry(r, &dep->pending_list, list) {
-               if (r == req) {
--                      dwc3_gadget_giveback(dep, req, -ECONNRESET);
-+                      /*
-+                       * Explicitly check for EP0/1 as dequeue for those
-+                       * EPs need to be handled differently.  Control EP
-+                       * only deals with one USB req, and giveback will
-+                       * occur during dwc3_ep0_stall_and_restart().  EP0
-+                       * requests are never added to started_list.
-+                       */
-+                      if (dep->number > 1)
-+                              dwc3_gadget_giveback(dep, req, -ECONNRESET);
-+                      else
-+                              dwc3_ep0_reset_state(dwc);
-                       goto out;
-               }
-       }
index 5a379356dfdb4865479ada1a84d3274224179205..f7e8431ebd2c4bc3615ebdfb75237d7c94f674c3 100644 (file)
@@ -258,7 +258,6 @@ powerpc-64s-increase-default-stack-size-to-32kb.patch
 tick-sched-fix-idle-and-iowait-sleeptime-accounting-vs-cpu-hotplug.patch
 usb-phy-mxs-remove-config_usb_otg-condition-for-mxs_phy_is_otg_host.patch
 usb-dwc-ep0-update-request-status-in-dwc3_ep0_stall_restart.patch
-usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch
 revert-usb-dwc3-soft-reset-phy-on-probe-for-host.patch
 revert-usb-dwc3-don-t-reset-device-side-if-dwc3-was-configured-as-host-only.patch
 usb-chipidea-wait-controller-resume-finished-for-wakeup-irq.patch
diff --git a/queue-6.1/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch b/queue-6.1/usb-dwc3-gadget-handle-ep0-request-dequeuing-properly.patch
deleted file mode 100644 (file)
index c9ce30b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From 730e12fbec53ab59dd807d981a204258a4cfb29a Mon Sep 17 00:00:00 2001
-From: Wesley Cheng <quic_wcheng@quicinc.com>
-Date: Wed, 6 Dec 2023 12:18:14 -0800
-Subject: usb: dwc3: gadget: Handle EP0 request dequeuing properly
-
-From: Wesley Cheng <quic_wcheng@quicinc.com>
-
-commit 730e12fbec53ab59dd807d981a204258a4cfb29a upstream.
-
-Current EP0 dequeue path will share the same as other EPs.  However, there
-are some special considerations that need to be made for EP0 transfers:
-
-  - EP0 transfers never transition into the started_list
-  - EP0 only has one active request at a time
-
-In case there is a vendor specific control message for a function over USB
-FFS, then there is no guarantee on the timeline which the DATA/STATUS stage
-is responded to.  While this occurs, any attempt to end transfers on
-non-control EPs will end up having the DWC3_EP_DELAY_STOP flag set, and
-defer issuing of the end transfer command.  If the USB FFS application
-decides to timeout the control transfer, or if USB FFS AIO path exits, the
-USB FFS driver will issue a call to usb_ep_dequeue() for the ep0 request.
-
-In case of the AIO exit path, the AIO FS blocks until all pending USB
-requests utilizing the AIO path is completed.  However, since the dequeue
-of ep0 req does not happen properly, all non-control EPs with the
-DWC3_EP_DELAY_STOP flag set will not be handled, and the AIO exit path will
-be stuck waiting for the USB FFS data endpoints to receive a completion
-callback.
-
-Fix is to utilize dwc3_ep0_reset_state() in the dequeue API to ensure EP0
-is brought back to the SETUP state, and ensures that any deferred end
-transfer commands are handled.  This also will end any active transfers
-on EP0, compared to the previous implementation which directly called
-giveback only.
-
-Fixes: fcd2def66392 ("usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue")
-Cc: stable <stable@kernel.org>
-Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
-Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-Link: https://lore.kernel.org/r/20231206201814.32664-1-quic_wcheng@quicinc.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/dwc3/gadget.c |   12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -2075,7 +2075,17 @@ static int dwc3_gadget_ep_dequeue(struct
-       list_for_each_entry(r, &dep->pending_list, list) {
-               if (r == req) {
--                      dwc3_gadget_giveback(dep, req, -ECONNRESET);
-+                      /*
-+                       * Explicitly check for EP0/1 as dequeue for those
-+                       * EPs need to be handled differently.  Control EP
-+                       * only deals with one USB req, and giveback will
-+                       * occur during dwc3_ep0_stall_and_restart().  EP0
-+                       * requests are never added to started_list.
-+                       */
-+                      if (dep->number > 1)
-+                              dwc3_gadget_giveback(dep, req, -ECONNRESET);
-+                      else
-+                              dwc3_ep0_reset_state(dwc);
-                       goto out;
-               }
-       }