From eef6a0f0566e13289d08a8d7654316771c20fc06 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Wed, 3 Jul 2013 16:51:18 -0400 Subject: [PATCH] usb_queue: Assert that transaction succeeded --- firmware/hackrf_usb/usb_queue.c | 7 +++++++ 1 file changed, 7 insertions(+) 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);