On Mon, 2025-01-27 at 17:26 +0100, Alexander Wetzel wrote: > > +/** > + * enum ieee80211_vif_txq - per-vif intermediate queues (txqi) > + * > + * @IEEE80211_VIF_TXQ_MULTICAST: queue for broadcast/multicast data frames. > + */ > +enum ieee80211_vif_txq { > + IEEE80211_VIF_TXQ_MULTICAST, > + IEEE80211_VIF_TXQ_NUM, > +}; nit: missed docs for _NUM > +++ b/net/mac80211/util.c > @@ -364,13 +364,14 @@ static void __ieee80211_wake_txqs(struct ieee80211_sub_if_data *sdata, int ac) > } > } > > - if (!vif->txq) > + if (!vif->txq[IEEE80211_VIF_TXQ_MULTICAST]) > goto out; > > - txqi = to_txq_info(vif->txq); > + txqi = to_txq_info(vif->txq[IEEE80211_VIF_TXQ_MULTICAST]); > > if (!test_and_clear_bit(IEEE80211_TXQ_DIRTY, &txqi->flags) || > - (ps && atomic_read(&ps->num_sta_ps)) || ac != vif->txq->ac) > + (ps && atomic_read(&ps->num_sta_ps)) || > + ac != vif->txq[IEEE80211_VIF_TXQ_MULTICAST]->ac) > goto out; Seems it'd be nicer to use an intermediate pointer here. johannes