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: stable@vger.kernel.org Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent a2c934f commit bbc4242

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

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)