diff options
author | Alexandre Becholey <alexandre.becholey@epfl.ch> | 2009-05-19 11:52:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-20 14:46:34 -0400 |
commit | ce4c45e099a81b2bc820b6e145aa9058c5acf0bd (patch) | |
tree | 7d58b6f0f2245f4c8c0349e89db247db40505b1e /drivers/net/wireless/rt2x00/rt2x00dev.c | |
parent | 7e0aae4732067e1bdb546071423a0b3483a79d9a (diff) |
rt73usb: fix for master mode
Report status unknown as if there were successfully transmitted.
This will avoid hostapd to disassociate because it doesn't understand what a status unknown is.
Signed-off-by: Alexandre Becholey <alexandre.becholey@epfl.ch>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00dev.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index f2270845072a..57813e72c808 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -260,7 +260,8 @@ void rt2x00lib_txdone(struct queue_entry *entry, | |||
260 | * Update TX statistics. | 260 | * Update TX statistics. |
261 | */ | 261 | */ |
262 | rt2x00dev->link.qual.tx_success += | 262 | rt2x00dev->link.qual.tx_success += |
263 | test_bit(TXDONE_SUCCESS, &txdesc->flags); | 263 | test_bit(TXDONE_SUCCESS, &txdesc->flags) || |
264 | test_bit(TXDONE_UNKNOWN, &txdesc->flags); | ||
264 | rt2x00dev->link.qual.tx_failed += | 265 | rt2x00dev->link.qual.tx_failed += |
265 | test_bit(TXDONE_FAILURE, &txdesc->flags); | 266 | test_bit(TXDONE_FAILURE, &txdesc->flags); |
266 | 267 | ||
@@ -278,14 +279,16 @@ void rt2x00lib_txdone(struct queue_entry *entry, | |||
278 | tx_info->status.rates[1].idx = -1; /* terminate */ | 279 | tx_info->status.rates[1].idx = -1; /* terminate */ |
279 | 280 | ||
280 | if (!(tx_info->flags & IEEE80211_TX_CTL_NO_ACK)) { | 281 | if (!(tx_info->flags & IEEE80211_TX_CTL_NO_ACK)) { |
281 | if (test_bit(TXDONE_SUCCESS, &txdesc->flags)) | 282 | if (test_bit(TXDONE_SUCCESS, &txdesc->flags) || |
283 | test_bit(TXDONE_UNKNOWN, &txdesc->flags)) | ||
282 | tx_info->flags |= IEEE80211_TX_STAT_ACK; | 284 | tx_info->flags |= IEEE80211_TX_STAT_ACK; |
283 | else if (test_bit(TXDONE_FAILURE, &txdesc->flags)) | 285 | else if (test_bit(TXDONE_FAILURE, &txdesc->flags)) |
284 | rt2x00dev->low_level_stats.dot11ACKFailureCount++; | 286 | rt2x00dev->low_level_stats.dot11ACKFailureCount++; |
285 | } | 287 | } |
286 | 288 | ||
287 | if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) { | 289 | if (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS) { |
288 | if (test_bit(TXDONE_SUCCESS, &txdesc->flags)) | 290 | if (test_bit(TXDONE_SUCCESS, &txdesc->flags) || |
291 | test_bit(TXDONE_UNKNOWN, &txdesc->flags)) | ||
289 | rt2x00dev->low_level_stats.dot11RTSSuccessCount++; | 292 | rt2x00dev->low_level_stats.dot11RTSSuccessCount++; |
290 | else if (test_bit(TXDONE_FAILURE, &txdesc->flags)) | 293 | else if (test_bit(TXDONE_FAILURE, &txdesc->flags)) |
291 | rt2x00dev->low_level_stats.dot11RTSFailureCount++; | 294 | rt2x00dev->low_level_stats.dot11RTSFailureCount++; |