diff options
author | Michal Kazior <michal.kazior@tieto.com> | 2013-12-05 00:53:41 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-12-11 00:50:40 -0500 |
commit | 2b6a6a90c31c550f839e905484f5253b9d24e33d (patch) | |
tree | 10b3ddf8146fd5c23dbbc08241162607e6cea7da /drivers/net/wireless/ath/ath10k/wmi.c | |
parent | d6b5075d73adbc10fac873ca86798e30c115a018 (diff) |
ath10k: fix WEP Shared authentication
Frames received from FW were treated incorrectly.
This led to stations being unable to associate to
WEP Shared ath10k AP. This was indicated by a
bizarre hostapd message:
Unsupported authentication algorithm (36088)
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/wmi.c')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/wmi.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c index 1260a8d15dc3..9ea333a7789c 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c | |||
@@ -937,7 +937,11 @@ static int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb) | |||
937 | hdr = (struct ieee80211_hdr *)skb->data; | 937 | hdr = (struct ieee80211_hdr *)skb->data; |
938 | fc = le16_to_cpu(hdr->frame_control); | 938 | fc = le16_to_cpu(hdr->frame_control); |
939 | 939 | ||
940 | if (fc & IEEE80211_FCTL_PROTECTED) { | 940 | /* FW delivers WEP Shared Auth frame with Protected Bit set and |
941 | * encrypted payload. However in case of PMF it delivers decrypted | ||
942 | * frames with Protected Bit set. */ | ||
943 | if (ieee80211_has_protected(hdr->frame_control) && | ||
944 | !ieee80211_is_auth(hdr->frame_control)) { | ||
941 | status->flag |= RX_FLAG_DECRYPTED | RX_FLAG_IV_STRIPPED | | 945 | status->flag |= RX_FLAG_DECRYPTED | RX_FLAG_IV_STRIPPED | |
942 | RX_FLAG_MMIC_STRIPPED; | 946 | RX_FLAG_MMIC_STRIPPED; |
943 | hdr->frame_control = __cpu_to_le16(fc & | 947 | hdr->frame_control = __cpu_to_le16(fc & |