The branch main has been updated by hselasky:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=8a46f021c2408c82375a1f5127efb7ac6b78596e

commit 8a46f021c2408c82375a1f5127efb7ac6b78596e
Author:     Hans Petter Selasky <[email protected]>
AuthorDate: 2021-08-18 09:41:49 +0000
Commit:     Hans Petter Selasky <[email protected]>
CommitDate: 2021-08-18 09:42:37 +0000

    Make sure the uftdi(4) driver doesn't start a USB transfer when being 
cancelled.
    
    MFC after:      1 week
    Sponsored by:   NVIDIA Networking
---
 sys/dev/usb/serial/uftdi.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/sys/dev/usb/serial/uftdi.c b/sys/dev/usb/serial/uftdi.c
index 9dc00e82253f..eaf4a9e78086 100644
--- a/sys/dev/usb/serial/uftdi.c
+++ b/sys/dev/usb/serial/uftdi.c
@@ -1212,14 +1212,9 @@ uftdi_write_callback(struct usb_xfer *xfer, usb_error_t 
error)
        DPRINTFN(3, "\n");
 
        switch (USB_GET_STATE(xfer)) {
-       default:                        /* Error */
-               if (error != USB_ERR_CANCELLED) {
-                       /* try to clear stall first */
-                       usbd_xfer_set_stall(xfer);
-               }
-               /* FALLTHROUGH */
        case USB_ST_SETUP:
        case USB_ST_TRANSFERRED:
+tr_setup:
                if (usbd_xfer_get_and_clr_zlp(xfer))
                        break;
 
@@ -1257,6 +1252,13 @@ uftdi_write_callback(struct usb_xfer *xfer, usb_error_t 
error)
                        usbd_transfer_submit(xfer);
                }
                break;
+       default:                        /* Error */
+               if (error != USB_ERR_CANCELLED) {
+                       /* try to clear stall first */
+                       usbd_xfer_set_stall(xfer);
+                       goto tr_setup;
+               }
+               break;
        }
 }
 
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "[email protected]"

Reply via email to