mirror of
https://github.com/opnsense/src.git
synced 2026-06-03 13:58:30 -04:00
Make sure the uftdi(4) driver doesn't start a USB transfer when being cancelled.
MFC after: 1 week Sponsored by: NVIDIA Networking
This commit is contained in:
parent
07edc89c39
commit
8a46f021c2
1 changed files with 8 additions and 6 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue