lkml.org 
[lkml]   [2019]   [Aug]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 036/103] mac80211: dont WARN on short WMM parameters from AP
    Date
    From: Brian Norris <briannorris@chromium.org>

    commit 05aaa5c97dce4c10a9e7eae2f1569a684e0c5ced upstream.

    In a very similar spirit to commit c470bdc1aaf3 ("mac80211: don't WARN
    on bad WMM parameters from buggy APs"), an AP may not transmit a
    fully-formed WMM IE. For example, it may miss or repeat an Access
    Category. The above loop won't catch that and will instead leave one of
    the four ACs zeroed out. This triggers the following warning in
    drv_conf_tx()

    wlan0: invalid CW_min/CW_max: 0/0

    and it may leave one of the hardware queues unconfigured. If we detect
    such a case, let's just print a warning and fall back to the defaults.

    Tested with a hacked version of hostapd, intentionally corrupting the
    IEs in hostapd_eid_wmm().

    Cc: stable@vger.kernel.org
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Link: https://lore.kernel.org/r/20190726224758.210953-1-briannorris@chromium.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/mac80211/mlme.c | 10 ++++++++++
    1 file changed, 10 insertions(+)

    --- a/net/mac80211/mlme.c
    +++ b/net/mac80211/mlme.c
    @@ -1873,6 +1873,16 @@ static bool ieee80211_sta_wmm_params(str
    }
    }

    + /* WMM specification requires all 4 ACIs. */
    + for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
    + if (params[ac].cw_min == 0) {
    + sdata_info(sdata,
    + "AP has invalid WMM params (missing AC %d), using defaults\n",
    + ac);
    + return false;
    + }
    + }
    +
    for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) {
    mlme_dbg(sdata,
    "WMM AC=%d acm=%d aifs=%d cWmin=%d cWmax=%d txop=%d uapsd=%d, downgraded=%d\n",

    \
     
     \ /
      Last update: 2019-08-22 19:56    [W:4.135 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site