diff options
author | Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> | 2017-10-30 18:04:51 -0700 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2017-11-10 04:30:56 +0200 |
commit | 5face518d4467868e7a82a321955236b2bb65bdc (patch) | |
tree | 9d9927fd6c93e946f1af7486c2264dcf0dfa9190 /drivers/net/wireless/quantenna/qtnfmac/event.c | |
parent | 18b7470f92dfbea3e5ef82cab70edfc559d46735 (diff) | |
download | linux-stable-5face518d4467868e7a82a321955236b2bb65bdc.tar.gz linux-stable-5face518d4467868e7a82a321955236b2bb65bdc.tar.bz2 linux-stable-5face518d4467868e7a82a321955236b2bb65bdc.zip |
qtnfmac: SCAN results: retreive frame type information from "IE set" TLV
"IE set" TLV carries the same information as
qlink_event_scan_result::frame_type. Convert the event to make use of
TLV and drop frame_type member.
While at it, make qlink_event_scan_result structure alignement-safe.
Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/quantenna/qtnfmac/event.c')
-rw-r--r-- | drivers/net/wireless/quantenna/qtnfmac/event.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c index b67a082eed69..4abc6d9ed560 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/event.c +++ b/drivers/net/wireless/quantenna/qtnfmac/event.c @@ -252,13 +252,12 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif, struct cfg80211_bss *bss; struct ieee80211_channel *channel; struct wiphy *wiphy = priv_to_wiphy(vif->mac); - enum cfg80211_bss_frame_type frame_type; + enum cfg80211_bss_frame_type frame_type = CFG80211_BSS_FTYPE_UNKNOWN; size_t payload_len; u16 tlv_type; u16 tlv_value_len; size_t tlv_full_len; const struct qlink_tlv_hdr *tlv; - const u8 *ies = NULL; size_t ies_len = 0; @@ -275,17 +274,6 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif, return -EINVAL; } - switch (sr->frame_type) { - case QLINK_BSS_FTYPE_BEACON: - frame_type = CFG80211_BSS_FTYPE_BEACON; - break; - case QLINK_BSS_FTYPE_PRESP: - frame_type = CFG80211_BSS_FTYPE_PRESP; - break; - default: - frame_type = CFG80211_BSS_FTYPE_UNKNOWN; - } - payload_len = len - sizeof(*sr); tlv = (struct qlink_tlv_hdr *)sr->payload; @@ -308,6 +296,17 @@ qtnf_event_handle_scan_results(struct qtnf_vif *vif, ie_len = tlv_value_len - (sizeof(*ie_set) - sizeof(ie_set->hdr)); + switch (ie_set->type) { + case QLINK_IE_SET_BEACON_IES: + frame_type = CFG80211_BSS_FTYPE_BEACON; + break; + case QLINK_IE_SET_PROBE_RESP_IES: + frame_type = CFG80211_BSS_FTYPE_PRESP; + break; + default: + frame_type = CFG80211_BSS_FTYPE_UNKNOWN; + } + if (ie_len) { ies = ie_set->ie_data; ies_len = ie_len; |