[rt2x00-users] [PATCH] rt2x00: Fix IEEE80211_TX_CTL_MORE_FRAMES handling
Gertjan van Wingerde
gwingerde at gmail.com
Tue Jun 8 18:01:38 UTC 2010
On 06/08/10 15:23, Helmut Schaa wrote:
> 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: Helmut Schaa <helmut.schaa at googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2x00queue.c | 9 +++++++--
> 1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
> index 35858b1..f916371 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
> @@ -353,13 +353,18 @@ static void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
> /*
> * Check if more fragments are pending
> */
> - if (ieee80211_has_morefrags(hdr->frame_control) ||
> - (tx_info->flags & IEEE80211_TX_CTL_MORE_FRAMES)) {
> + if (ieee80211_has_morefrags(hdr->frame_control)) {
> __set_bit(ENTRY_TXD_BURST, &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
> * to be inserted into the frame, except for a frame that has been injected
> * through a monitor interface. This latter is needed for testing a
More information about the users
mailing list