Page MenuHomeFreeBSD

D60848.1794727433.diff
No OneTemporary

Authored By
Unknown
Size
817 B
Referenced Files
None
Subscribers
None

D60848.1794727433.diff

diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -4587,9 +4587,19 @@
* anyway ourselves (and should stub out / warn / etc.)
*/
+ /*
+ * Ok, this is a bit "fun" and could do with some cleanup.
+ * 'ac' here is (mostly) the AC, not TID. It's actually used
+ * as the destination txq.
+ *
+ * For A-MPDU enabled queues, 'ac' becomes the private queue
+ * allocated for this TID. However, ni_tx_ampdu[] is now per
+ * TID, not per AC. So a little twisty logic is done here.
+ */
ac = M_WME_GETAC(m);
if (m->m_flags & M_AMPDU_MPDU) {
- struct ieee80211_tx_ampdu *tap = &ni->ni_tx_ampdu[ac];
+ struct ieee80211_tx_ampdu *tap =
+ &ni->ni_tx_ampdu[WME_AC_TO_TID(ac)];
if (!IEEE80211_AMPDU_RUNNING(tap))
return (EINVAL);

File Metadata

Mime Type
text/plain
Expires
Sun, Nov 15, 7:23 AM (20 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41079352
Default Alt Text
D60848.1794727433.diff (817 B)

Event Timeline