]> git.dujemihanovic.xyz Git - linux.git/commitdiff
wifi: mac80211: remove/avoid misleading prints
authorJames Prestwood <prestwoj@gmail.com>
Thu, 15 Sep 2022 19:55:53 +0000 (12:55 -0700)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 7 Oct 2022 12:40:33 +0000 (14:40 +0200)
At some point a few kernel debug prints started appearing which
indicated something was sending invalid IEs:

"bad VHT capabilities, disabling VHT"
"Invalid HE elem, Disable HE"

Turns out these were being printed because the local hardware
supported HE/VHT but the peer/AP did not. Bad/invalid indicates,
to me at least, that the IE is in some way malformed, not missing.

For the HE print (ieee80211_verify_peer_he_mcs_support) it will
now silently fail if the HE capability element is missing (still
prints if the element size is wrong).

For the VHT print, it has been removed completely and will silently
set the DISABLE_VHT flag which is consistent with how DISABLE_HT
is set.

Signed-off-by: James Prestwood <prestwoj@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c

index 54b8d5065bbde5293eb3d41c6cc8dbf55153ba75..d8484cd870de58dac322714481a6fd97700b6101 100644 (file)
@@ -4409,8 +4409,11 @@ ieee80211_verify_peer_he_mcs_support(struct ieee80211_sub_if_data *sdata,
        he_cap_elem = cfg80211_find_ext_elem(WLAN_EID_EXT_HE_CAPABILITY,
                                             ies->data, ies->len);
 
+       if (!he_cap_elem)
+               return false;
+
        /* invalid HE IE */
-       if (!he_cap_elem || he_cap_elem->datalen < 1 + sizeof(*he_cap)) {
+       if (he_cap_elem->datalen < 1 + sizeof(*he_cap)) {
                sdata_info(sdata,
                           "Invalid HE elem, Disable HE\n");
                return false;
@@ -4676,8 +4679,6 @@ static int ieee80211_prep_channel(struct ieee80211_sub_if_data *sdata,
                }
 
                if (!elems->vht_cap_elem) {
-                       sdata_info(sdata,
-                                  "bad VHT capabilities, disabling VHT\n");
                        *conn_flags |= IEEE80211_CONN_DISABLE_VHT;
                        vht_oper = NULL;
                }