[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