Skip to content

Commit bbc4242

Browse files
nbd168gregkh
authored andcommitted
mac80211: fix reordering of buffered broadcast packets
commit 9ec1190 upstream. If the buffered broadcast queue contains packets, letting new packets bypass that queue can lead to heavy reordering, since the driver is probably throttling transmission of buffered multicast packets after beacons. Keep buffering packets until the buffer has been cleared (and no client is in powersave mode). Cc: [email protected] Signed-off-by: Felix Fietkau <[email protected]> Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent a2c934f commit bbc4242

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

net/mac80211/tx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,8 +435,8 @@ ieee80211_tx_h_multicast_ps_buf(struct ieee80211_tx_data *tx)
435435
if (ieee80211_hw_check(&tx->local->hw, QUEUE_CONTROL))
436436
info->hw_queue = tx->sdata->vif.cab_queue;
437437

438-
/* no stations in PS mode */
439-
if (!atomic_read(&ps->num_sta_ps))
438+
/* no stations in PS mode and no buffered packets */
439+
if (!atomic_read(&ps->num_sta_ps) && skb_queue_empty(&ps->bc_buf))
440440
return TX_CONTINUE;
441441

442442
info->flags |= IEEE80211_TX_CTL_SEND_AFTER_DTIM;

0 commit comments

Comments
 (0)