mac80211: fix reordering of buffered broadcast packets
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
87b874d4d6
commit
5ffacceb7b
1 changed files with 28 additions and 0 deletions
|
@ -0,0 +1,28 @@
|
|||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Wed, 28 Nov 2018 22:36:06 +0100
|
||||
Subject: [PATCH] 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: stable@vger.kernel.org
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -435,8 +435,8 @@ ieee80211_tx_h_multicast_ps_buf(struct i
|
||||
if (ieee80211_hw_check(&tx->local->hw, QUEUE_CONTROL))
|
||||
info->hw_queue = tx->sdata->vif.cab_queue;
|
||||
|
||||
- /* no stations in PS mode */
|
||||
- if (!atomic_read(&ps->num_sta_ps))
|
||||
+ /* no stations in PS mode and no buffered packets */
|
||||
+ if (!atomic_read(&ps->num_sta_ps) && skb_queue_empty(&ps->bc_buf))
|
||||
return TX_CONTINUE;
|
||||
|
||||
info->flags |= IEEE80211_TX_CTL_SEND_AFTER_DTIM;
|
Loading…
Reference in a new issue