diff --git a/firmware/hackrf_usb/usb_queue.c b/firmware/hackrf_usb/usb_queue.c index c0b5f7d7..10fd1ef8 100644 --- a/firmware/hackrf_usb/usb_queue.c +++ b/firmware/hackrf_usb/usb_queue.c @@ -160,6 +160,13 @@ void usb_queue_transfer_complete(usb_endpoint_t* const endpoint) { usb_transfer_t* transfer = endpoint_pop_transfer(endpoint); unsigned int transferred = transfer->maximum_length - transfer->td.total_bytes; + uint8_t status = transfer->td.total_bytes; + if (status & USB_TD_DTD_TOKEN_STATUS_ACTIVE + || status & USB_TD_DTD_TOKEN_STATUS_HALTED + || status & USB_TD_DTD_TOKEN_STATUS_BUFFER_ERROR + || status & USB_TD_DTD_TOKEN_STATUS_TRANSACTION_ERROR) { + assert(0); + } if (transfer->completion_cb) transfer->completion_cb(transfer, transferred); free_transfer(transfer);