On 6/21/2017 10:37 AM, Johannes Berg wrote:
On Wed, 2017-06-21 at 09:09 +0200, Johannes Berg wrote:
On Tue, 2017-06-20 at 21:19 -0700, Igor Mitsyanko wrote:
- struct ieee80211_txq *txq[IEEE80211_NUM_TIDS];
+ struct ieee80211_txq *txq[IEEE80211_NUM_TIDS + 1];
Isn't that a little confusing? Wouldn't it be better to have a
separate member for non-data txq and name it accordingly
(something
like txq_nodata).
We do this trick in quite a number of places, so it shouldn't really
come as a surprise.
You have to handle it specially in most cases anyway I guess.
With this approach you won't have to replace ARRAY_SIZE(sta->txq)
by IEEE80211_NUM_TIDS anywhere.
Yeah, that would indeed be a good reason - I didn't realize the
ARRAY_SIZE() when I originally wrote the patch. And yes, I do need to
treat it specially - except then if it's separate I also have to
initialize it separately, so it's a bit of a trade-off.
I changed my mind on changing this, the allocation, initialization and
teardown etc. just gets much more complicated with doing that, needing
special cases in quite a number of places.
So for the sake of ath{9,10}k and possible future drivers you may want
to document it clearly in mac80211.h(?), ie. when driver does not want a
separate non-data txq they should use IEEE80211_NUM_TIDS.
Regards,
Arend