Patch "usb: dwc3: ep0: Don't reset resource alloc flag (including ep0)" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    usb: dwc3: ep0: Don't reset resource alloc flag (including ep0)

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     usb-dwc3-ep0-don-t-reset-resource-alloc-flag-includi.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 268a50b29795e5a00c8fd9f91ac8dabcae35fc9f
Author: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
Date:   Thu Aug 15 08:40:29 2024 +0200

    usb: dwc3: ep0: Don't reset resource alloc flag (including ep0)
    
    [ Upstream commit 72fca8371f205d654f95b09cd023a71fd5307041 ]
    
    The DWC3_EP_RESOURCE_ALLOCATED flag ensures that the resource of an
    endpoint is only assigned once. Unless the endpoint is reset, don't
    clear this flag. Otherwise we may set endpoint resource again, which
    prevents the driver from initiate transfer after handling a STALL or
    endpoint halt to the control endpoint.
    
    Commit f2e0eee47038 ("usb: dwc3: ep0: Don't reset resource alloc flag")
    was fixing the initial issue, but did this only for physical ep1. Since
    the function dwc3_ep0_stall_and_restart is resetting the flags for both
    physical endpoints, this also has to be done for ep0.
    
    Cc: stable@xxxxxxxxxxxxxxx
    Fixes: b311048c174d ("usb: dwc3: gadget: Rewrite endpoint allocation flow")
    Acked-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>
    Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240814-dwc3hwep0reset-v2-1-29e1d7d923ea@xxxxxxxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Stable-dep-of: 5d2fb074dea2 ("usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 72bb722da2f25..371662a552538 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -231,7 +231,8 @@ void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
 	/* stall is always issued on EP0 */
 	dep = dwc->eps[0];
 	__dwc3_gadget_ep_set_halt(dep, 1, false);
-	dep->flags = DWC3_EP_ENABLED;
+	dep->flags &= DWC3_EP_RESOURCE_ALLOCATED;
+	dep->flags |= DWC3_EP_ENABLED;
 	dwc->delayed_status = false;
 
 	if (!list_empty(&dep->pending_list)) {




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux