mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
qcacmn: Fix MBSSID scan IE parse failure
Failed to generate Non-Tx BSS scan entry due to corrupted non-tx beacon IE. Fix the sequence of fields need to be copied to generate the new non-tx scan entry. Change-Id: I6ed8773fb0efe6193c954f4963c364b9d8bf1960 CRs-Fixed: 2386423
This commit is contained in:
parent
c783c07b93
commit
da4a452492
1 changed files with 14 additions and 7 deletions
|
|
@ -1366,8 +1366,15 @@ static QDF_STATUS util_scan_parse_mbssid(struct wlan_objmgr_pdev *pdev,
|
|||
*/
|
||||
qdf_mem_copy(new_frame, frame, 36);
|
||||
/* Copy the new ie generated from MBSSID profile*/
|
||||
hdr = (struct wlan_frame_hdr *)new_frame;
|
||||
qdf_mem_copy(hdr->i_addr2, new_bssid,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
qdf_mem_copy(hdr->i_addr3, new_bssid,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
/* Copy the new ie generated from MBSSID profile*/
|
||||
qdf_mem_copy(new_frame +
|
||||
offsetof(struct wlan_bcn_frame, ie),
|
||||
offsetof(struct wlan_bcn_frame, ie) +
|
||||
sizeof(struct wlan_frame_hdr),
|
||||
new_ie, new_ie_len);
|
||||
status = util_scan_gen_scan_entry(pdev, new_frame,
|
||||
new_frame_len,
|
||||
|
|
@ -1395,8 +1402,7 @@ static QDF_STATUS util_scan_parse_mbssid(struct wlan_objmgr_pdev *pdev,
|
|||
struct mgmt_rx_event_params *rx_param,
|
||||
qdf_list_t *scan_list)
|
||||
{
|
||||
return util_scan_gen_scan_entry(pdev, frame, frame_len,
|
||||
frm_subtype, rx_param, scan_list);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -1418,6 +1424,10 @@ util_scan_parse_beacon_frame(struct wlan_objmgr_pdev *pdev,
|
|||
sizeof(struct wlan_frame_hdr) -
|
||||
offsetof(struct wlan_bcn_frame, ie));
|
||||
|
||||
status = util_scan_gen_scan_entry(pdev, frame, frame_len,
|
||||
frm_subtype, rx_param,
|
||||
scan_list);
|
||||
|
||||
/*
|
||||
* IF MBSSID IE is present in the beacon then
|
||||
* scan component will create a new entry for
|
||||
|
|
@ -1428,10 +1438,7 @@ util_scan_parse_beacon_frame(struct wlan_objmgr_pdev *pdev,
|
|||
status = util_scan_parse_mbssid(pdev, frame, frame_len,
|
||||
frm_subtype, rx_param,
|
||||
scan_list);
|
||||
else
|
||||
status = util_scan_gen_scan_entry(pdev, frame, frame_len,
|
||||
frm_subtype, rx_param,
|
||||
scan_list);
|
||||
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
scm_err_rl("Failed to create a scan entry");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue