| From 022936bbea77af3fb322d6766887717b5bbc45d6 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 5 Sep 2018 08:06:07 +0300 |
| Subject: mac80211: fix saving a few HE values |
| |
| From: Naftali Goldstein <naftali.goldstein@intel.com> |
| |
| [ Upstream commit 77cbbc35a49b75969d98edce9400beb21720aa39 ] |
| |
| After masking the he_oper_params, to get the requested values as |
| integers one must rshift and not lshift. Fix that by using the |
| le32_get_bits() macro. |
| |
| Fixes: 41cbb0f5a295 ("mac80211: add support for HE") |
| Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com> |
| [converted to use le32_get_bits()] |
| Signed-off-by: Luca Coelho <luciano.coelho@intel.com> |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| net/mac80211/mlme.c | 17 +++++++---------- |
| 1 file changed, 7 insertions(+), 10 deletions(-) |
| |
| diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c |
| index 5c9dcafbc3424..b0667467337d4 100644 |
| --- a/net/mac80211/mlme.c |
| +++ b/net/mac80211/mlme.c |
| @@ -3255,19 +3255,16 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata, |
| } |
| |
| if (bss_conf->he_support) { |
| - u32 he_oper_params = |
| - le32_to_cpu(elems.he_operation->he_oper_params); |
| + bss_conf->bss_color = |
| + le32_get_bits(elems.he_operation->he_oper_params, |
| + IEEE80211_HE_OPERATION_BSS_COLOR_MASK); |
| |
| - bss_conf->bss_color = he_oper_params & |
| - IEEE80211_HE_OPERATION_BSS_COLOR_MASK; |
| bss_conf->htc_trig_based_pkt_ext = |
| - (he_oper_params & |
| - IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK) << |
| - IEEE80211_HE_OPERATION_DFLT_PE_DURATION_OFFSET; |
| + le32_get_bits(elems.he_operation->he_oper_params, |
| + IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK); |
| bss_conf->frame_time_rts_th = |
| - (he_oper_params & |
| - IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK) << |
| - IEEE80211_HE_OPERATION_RTS_THRESHOLD_OFFSET; |
| + le32_get_bits(elems.he_operation->he_oper_params, |
| + IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK); |
| |
| bss_conf->multi_sta_back_32bit = |
| sta->sta.he_cap.he_cap_elem.mac_cap_info[2] & |
| -- |
| 2.20.1 |
| |