diff options
author | Christian Lamparter <chunkeey@googlemail.com> | 2010-09-26 15:48:31 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-09-28 15:47:56 -0400 |
commit | 042c53f6e84896701b67012ad525bc44ea6de25f (patch) | |
tree | fa31ace6edd65ea3c7623b60718d50d5daa3a40f /drivers/net/wireless/ath/carl9170/tx.c | |
parent | b4c85d459c3a2c539a2d5885b12372e404bafc6b (diff) |
carl9170: remove lost-frame workaround
This patch removes some cruft, which survived
the RFC review phase.
Originally, carl9170_tx_ampdu_queue erroneously
dropped a lot of frames. As a result the ampdu
scheduler bogged down quite frequently and the
affected BA session timed out.
However this bug has been fixed and the WA and
its debugfs counter is no longer useful.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/carl9170/tx.c')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/tx.c | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c index e0d2374e0c77..e6be5e6c1723 100644 --- a/drivers/net/wireless/ath/carl9170/tx.c +++ b/drivers/net/wireless/ath/carl9170/tx.c | |||
@@ -1042,41 +1042,8 @@ retry: | |||
1042 | queue = TID_TO_WME_AC(tid_info->tid); | 1042 | queue = TID_TO_WME_AC(tid_info->tid); |
1043 | 1043 | ||
1044 | spin_lock_bh(&tid_info->lock); | 1044 | spin_lock_bh(&tid_info->lock); |
1045 | if (tid_info->state != CARL9170_TID_STATE_XMIT) { | 1045 | if (tid_info->state != CARL9170_TID_STATE_XMIT) |
1046 | first = skb_peek(&tid_info->queue); | 1046 | goto processed; |
1047 | if (first) { | ||
1048 | struct ieee80211_tx_info *txinfo; | ||
1049 | struct carl9170_tx_info *arinfo; | ||
1050 | |||
1051 | txinfo = IEEE80211_SKB_CB(first); | ||
1052 | arinfo = (void *) txinfo->rate_driver_data; | ||
1053 | |||
1054 | if (time_is_after_jiffies(arinfo->timeout + | ||
1055 | msecs_to_jiffies(CARL9170_QUEUE_TIMEOUT)) | ||
1056 | == true) | ||
1057 | goto processed; | ||
1058 | |||
1059 | /* | ||
1060 | * We've been waiting for the frame which | ||
1061 | * matches "snx" (start sequence of the | ||
1062 | * next aggregate) for some time now. | ||
1063 | * | ||
1064 | * But it never arrived. Therefore | ||
1065 | * jump to the next available frame | ||
1066 | * and kick-start the transmission. | ||
1067 | * | ||
1068 | * Note: This might induce odd latency | ||
1069 | * spikes because the receiver will be | ||
1070 | * waiting for the lost frame too. | ||
1071 | */ | ||
1072 | ar->tx_ampdu_timeout++; | ||
1073 | |||
1074 | tid_info->snx = carl9170_get_seq(first); | ||
1075 | tid_info->state = CARL9170_TID_STATE_XMIT; | ||
1076 | } else { | ||
1077 | goto processed; | ||
1078 | } | ||
1079 | } | ||
1080 | 1047 | ||
1081 | tid_info->counter++; | 1048 | tid_info->counter++; |
1082 | first = skb_peek(&tid_info->queue); | 1049 | first = skb_peek(&tid_info->queue); |