Patch "usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED" 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 clear ep0 DWC3_EP_TRANSFER_STARTED

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-clear-ep0-dwc3_ep_transfer_starte.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 b74dd461bfdb305ec3643cf668669c7ea887cbf9
Author: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>
Date:   Thu Nov 14 01:02:06 2024 +0000

    usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED
    
    [ Upstream commit 5d2fb074dea289c41f5aaf2c3f68286bee370634 ]
    
    The driver cannot issue the End Transfer command to the SETUP transfer.
    Don't clear DWC3_EP_TRANSFER_STARTED flag to make sure that the driver
    won't send Start Transfer command again, which can cause no-resource
    error. For example this can occur if the host issues a reset to the
    device.
    
    Cc: stable@xxxxxxxxxxxxxxx
    Fixes: 76cb323f80ac ("usb: dwc3: ep0: clear all EP0 flags")
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/d3d618185fd614bb7426352a9fc1199641d3b5f5.1731545781.git.Thinh.Nguyen@xxxxxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 371662a552538..69d98f1938edd 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -231,7 +231,7 @@ 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_RESOURCE_ALLOCATED;
+	dep->flags &= DWC3_EP_RESOURCE_ALLOCATED | DWC3_EP_TRANSFER_STARTED;
 	dep->flags |= DWC3_EP_ENABLED;
 	dwc->delayed_status = false;
 




[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