• Juuso Oikarinen's avatar
    mac80211: Fix WMM driver queue configuration · f2176d72
    Juuso Oikarinen authored
    The WMM parameter configuration function (ieee80211_sta_wmm_params) only
    configures the WMM parameters to the driver is the wmm_last_param_set
    counter value is changed by the AP.
    
    The wmm_last_param_set is initialized to -1 on association in order to ensure
    the configuration is made to the driver at least once on association, but
    currently this initialization is done *after* the WMM parameter configuration
    function was called.
    
    This leads to unreliability in the driver getting properly configured on first
    association (depending on what counter value the AP happens to use.) When
    disassociating (the wmm default parameters are configured to the driver) and
    then reassociating, due to the above the WMM configuration is not set to the
    driver at all.
    
    On drivers without beacon filtering the problem is corrected by later beacons,
    but on drivers with beacon filtering the WMM will remain permanently incorrectly
    configured.
    
    Fix this by moving the initialization of wmm_last_param_set to -1 before
    ieee80211_sta_wmm_params is called on association.
    Signed-off-by: default avatarJuuso Oikarinen <juuso.oikarinen@nokia.com>
    Acked-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    f2176d72
mlme.c 66.8 KB