Skip to content

Commit 9ec1190

Browse files
nbd168jmberg-intel
authored andcommitted
mac80211: fix reordering of buffered broadcast packets
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]>
1 parent a317e65 commit 9ec1190

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
@@ -439,8 +439,8 @@ ieee80211_tx_h_multicast_ps_buf(struct ieee80211_tx_data *tx)
439439
if (ieee80211_hw_check(&tx->local->hw, QUEUE_CONTROL))
440440
info->hw_queue = tx->sdata->vif.cab_queue;
441441

442-
/* no stations in PS mode */
443-
if (!atomic_read(&ps->num_sta_ps))
442+
/* no stations in PS mode and no buffered packets */
443+
if (!atomic_read(&ps->num_sta_ps) && skb_queue_empty(&ps->bc_buf))
444444
return TX_CONTINUE;
445445

446446
info->flags |= IEEE80211_TX_CTL_SEND_AFTER_DTIM;

0 commit comments

Comments
 (0)