Commit 2606e422 authored by Helmut Schaa's avatar Helmut Schaa Committed by John W. Linville

rt2x00: Fix IEEE80211_TX_CTL_MORE_FRAMES handling

IEEE80211_TX_CTL_MORE_FRAMES indicates that more frames are queued for tx
but has nothing to do with fragmentation. Hence, don't set ENTRY_TXD_MORE_FRAG
but only ENTRY_TXD_BURST to not kick the tx queues immediately.
Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ecb7cab5
...@@ -353,12 +353,17 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry, ...@@ -353,12 +353,17 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
/* /*
* Check if more fragments are pending * Check if more fragments are pending
*/ */
if (ieee80211_has_morefrags(hdr->frame_control) || if (ieee80211_has_morefrags(hdr->frame_control)) {
(tx_info->flags & IEEE80211_TX_CTL_MORE_FRAMES)) {
__set_bit(ENTRY_TXD_BURST, &txdesc->flags); __set_bit(ENTRY_TXD_BURST, &txdesc->flags);
__set_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags); __set_bit(ENTRY_TXD_MORE_FRAG, &txdesc->flags);
} }
/*
* Check if more frames (!= fragments) are pending
*/
if (tx_info->flags & IEEE80211_TX_CTL_MORE_FRAMES)
__set_bit(ENTRY_TXD_BURST, &txdesc->flags);
/* /*
* Beacons and probe responses require the tsf timestamp * Beacons and probe responses require the tsf timestamp
* to be inserted into the frame, except for a frame that has been injected * to be inserted into the frame, except for a frame that has been injected
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment