Commit 575a97ac authored by Johannes Berg's avatar Johannes Berg
Browse files

ieee80211: fix HE SPR size calculation



The he_sr_control field is just a u8, so le32_to_cpu()
shouldn't be applied to it; this was evidently copied
from ieee80211_he_oper_size(). Fix it, and also adjust
the type of the local variable.

Fixes: ef11a931 ("mac80211: HE: add Spatial Reuse element parsing support")
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20200325090918.dfe483b49e06.Ia53622f23b2610a2ae6ea39a199866196fe946c1@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 0016d320
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2102,14 +2102,14 @@ ieee80211_he_spr_size(const u8 *he_spr_ie)
{
	struct ieee80211_he_spr *he_spr = (void *)he_spr_ie;
	u8 spr_len = sizeof(struct ieee80211_he_spr);
	u32 he_spr_params;
	u8 he_spr_params;

	/* Make sure the input is not NULL */
	if (!he_spr_ie)
		return 0;

	/* Calc required length */
	he_spr_params = le32_to_cpu(he_spr->he_sr_control);
	he_spr_params = he_spr->he_sr_control;
	if (he_spr_params & IEEE80211_HE_SPR_NON_SRG_OFFSET_PRESENT)
		spr_len++;
	if (he_spr_params & IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT)