• Johannes Berg's avatar
    iwlwifi: mvm: fix mac80211's hw_queue in DQA mode · 32026e8f
    Johannes Berg authored
    When in non-DQA mode, mac80211 actually gets a pretty much perfect
    idea (in vif->hw_queue/cab_queue) of which queues we're using. But
    in DQA mode, this isn't true - nonetheless, we were adding all the
    queues, even the ones stations are using, to the queue allocation
    bitmap.
    
    Fix this, we should only add the queues we really are using in DQA
    mode:
     * IWL_MVM_OFFCHANNEL_QUEUE, as we use this in both modes
     * mvm->aux_queue, as we use this in both modes - mac80211
       never really knows about it but we use it as a cookie
       internally, so can't reuse it
     * possibly the GCAST queue (cab_queue)
     * all the "queues" we told mac80211 about we were using on each
       interface (vif->hw_queue), these are entirely virtual in this
       mode
    
    Also add back the failure now when we can't allocate any more of
    these - now virtual - queues; this was skipped in DQA mode and
    would lead to having multiple ACs or even interfaces use the same
    queue number in mac80211 (10, since that's the limit), which would
    stop far too many queues if stopped.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    32026e8f
mac-ctxt.c 50.6 KB