qcacmn: Bypass QBSS IE length check
Some old ap's QBSS IE length is 4Bytes, in latest 802.11e
spec, the expected length is 5Bytes.
If stop parsing beacon&probe with 4Bytes QBSS IE, DUT can't
scan and connect with AP, so change it to bypass QBSS IE
if AP uses the old format.
Change-Id: Ib6727f5f77c5e5543e862277e1d2d35273f62d59
CRs-Fixed: 2257707
diff --git a/umac/scan/dispatcher/src/wlan_scan_utils_api.c b/umac/scan/dispatcher/src/wlan_scan_utils_api.c
index eac7c1f..2efaecb 100644
--- a/umac/scan/dispatcher/src/wlan_scan_utils_api.c
+++ b/umac/scan/dispatcher/src/wlan_scan_utils_api.c
@@ -524,8 +524,15 @@
break;
case WLAN_ELEMID_QBSS_LOAD:
if (ie->ie_len != sizeof(struct qbss_load_ie) -
- sizeof(struct ie_header))
- return QDF_STATUS_E_INVAL;
+ sizeof(struct ie_header)) {
+ /*
+ * Expected QBSS IE length is 5Bytes; For some
+ * old cisco AP, QBSS IE length is 4Bytes, which
+ * doesn't match with latest spec, So ignore
+ * QBSS IE in such case.
+ */
+ break;
+ }
scan_params->ie_list.qbssload = (uint8_t *)ie;
break;
case WLAN_ELEMID_CHANSWITCHANN: