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

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@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 0016d320
...@@ -2102,14 +2102,14 @@ ieee80211_he_spr_size(const u8 *he_spr_ie) ...@@ -2102,14 +2102,14 @@ ieee80211_he_spr_size(const u8 *he_spr_ie)
{ {
struct ieee80211_he_spr *he_spr = (void *)he_spr_ie; struct ieee80211_he_spr *he_spr = (void *)he_spr_ie;
u8 spr_len = sizeof(struct ieee80211_he_spr); u8 spr_len = sizeof(struct ieee80211_he_spr);
u32 he_spr_params; u8 he_spr_params;
/* Make sure the input is not NULL */ /* Make sure the input is not NULL */
if (!he_spr_ie) if (!he_spr_ie)
return 0; return 0;
/* Calc required length */ /* 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) if (he_spr_params & IEEE80211_HE_SPR_NON_SRG_OFFSET_PRESENT)
spr_len++; spr_len++;
if (he_spr_params & IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT) if (he_spr_params & IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment