|
@@ -262,23 +262,20 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb)
|
|
|
struct queue_entry *entry = (struct queue_entry *)urb->context;
|
|
|
struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
|
|
|
|
|
|
- if (!test_and_clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))
|
|
|
+ if (!test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags))
|
|
|
return;
|
|
|
-
|
|
|
- if (rt2x00dev->ops->lib->tx_dma_done)
|
|
|
- rt2x00dev->ops->lib->tx_dma_done(entry);
|
|
|
-
|
|
|
- /*
|
|
|
- * Report the frame as DMA done
|
|
|
- */
|
|
|
- rt2x00lib_dmadone(entry);
|
|
|
-
|
|
|
/*
|
|
|
* Check if the frame was correctly uploaded
|
|
|
*/
|
|
|
if (urb->status)
|
|
|
set_bit(ENTRY_DATA_IO_FAILED, &entry->flags);
|
|
|
+ /*
|
|
|
+ * Report the frame as DMA done
|
|
|
+ */
|
|
|
+ rt2x00lib_dmadone(entry);
|
|
|
|
|
|
+ if (rt2x00dev->ops->lib->tx_dma_done)
|
|
|
+ rt2x00dev->ops->lib->tx_dma_done(entry);
|
|
|
/*
|
|
|
* Schedule the delayed work for reading the TX status
|
|
|
* from the device.
|