diff mbox series

net: mac80211: remove/avoid misleading prints

Message ID 20220915195553.1052931-1-prestwoj@gmail.com (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show
Series net: mac80211: remove/avoid misleading prints | expand

Commit Message

James Prestwood Sept. 15, 2022, 7:55 p.m. UTC
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>
---
 net/mac80211/mlme.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Kalle Valo Sept. 16, 2022, 5:44 a.m. UTC | #1
James Prestwood <prestwoj@gmail.com> writes:

> 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>

This has been cluttering my test logs as well, thanks for fixing this.
But the title should be:

wifi: mac80211: remove/avoid misleading prints

I assume Johannes can fix it during commit.
diff mbox series

Patch

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index ff449e0c2e62..97cd70b8784b 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -4410,8 +4410,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;
@@ -4677,8 +4680,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;
 		}