• Emmanuel Grumbach's avatar
    iwlwifi: mvm: free AGG queue when we STA is removed · 80d85655
    Emmanuel Grumbach authored
    When we stop an AGG session, we need to look at the sequence
    numbers in in the private area of the ieee80211_sta struct.
    This allows us to know is the queue is empty. To get access
    to this private area, we use fw_id_to_mac_id that maps
    sta_id (index of the STA in fw table) to ieee80211_sta.
    
    When the STA exists in fw, but not in mac80211, we set
    an ERR ptr in fw_id_to_mac_id.
    
    But if we first set an ERR ptr to fw_id_to_mac_id, and only
    then flush the queues, then we won't be able to access the
    sequence numbers in ieee80211_sta from the reclaim flow.
    This means that we will never be able to release an AGG
    queue when a station is deleted.
    
    So first, flush the queue. That will let the reclaim flow
    call iwl_mvm_check_ratid_empty which will disable the AGG
    queue as needed, and only then, remove the mapping in
    fw_id_to_mac_id.
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    80d85655
sta.c 34 KB