diff options
author | Johannes Stezenbach <js@sig21.net> | 2011-04-18 09:30:01 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-04-19 15:39:32 -0400 |
commit | 6e6d6932a3f525d734f6c2f5845e9cadfaeddce9 (patch) | |
tree | 7e33c091bdc04d0659579b6be178f689faa040e5 /drivers/net/wireless/rt2x00/rt2800usb.c | |
parent | 75256f0348d38f414b7ac50ac78d4a4532bb6762 (diff) |
rt2800usb: handle TX status timeouts
The watchdog just triggers rt2800usb_work_txdone() when it
detects a TX status timeout, thus rt2800usb_work_txdone() needs to
handle this case.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2800usb.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800usb.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c index 862430e600ad..69004b968122 100644 --- a/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/rt2x00/rt2800usb.c | |||
@@ -449,11 +449,14 @@ static void rt2800usb_work_txdone(struct work_struct *work) | |||
449 | while (!rt2x00queue_empty(queue)) { | 449 | while (!rt2x00queue_empty(queue)) { |
450 | entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE); | 450 | entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE); |
451 | 451 | ||
452 | if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags) || | 452 | if (test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags)) |
453 | !test_bit(ENTRY_DATA_IO_FAILED, &entry->flags)) | 453 | break; |
454 | if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags)) | ||
455 | rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE); | ||
456 | else if (rt2x00queue_status_timeout(entry)) | ||
457 | rt2x00lib_txdone_noinfo(entry, TXDONE_UNKNOWN); | ||
458 | else | ||
454 | break; | 459 | break; |
455 | |||
456 | rt2x00lib_txdone_noinfo(entry, TXDONE_FAILURE); | ||
457 | } | 460 | } |
458 | } | 461 | } |
459 | } | 462 | } |