1
0

qcacld-3.0: Incorrect bssid value during Roam Result logging

In the cm_roam_result_info_event() api, for roam result the
current AP bssid is sent instead of candidate AP.

Correct this to send candidate AP bssid during roam result
logging.

Change-Id: I4b1d4634faa3fbf3e7b32af8c13d4b444d26c505
CRs-Fixed: 3237021
Este cometimento está contido em:
VIJAY RAJ
2022-07-06 18:43:15 +05:30
cometido por Madan Koyyalamudi
ascendente 893081ff9e
cometimento bcf0e588e7

Ver ficheiro

@@ -5740,8 +5740,8 @@ void cm_roam_result_info_event(struct wlan_objmgr_psoc *psoc,
struct wmi_roam_scan_data *scan_data,
uint8_t vdev_id)
{
struct qdf_mac_addr bssid = {0};
uint8_t i;
struct qdf_mac_addr bssid = {0};
bool ap_found_in_roam_scan = false, bmiss_skip_full_scan = false;
bool roam_abort = (res->fail_reason == ROAM_FAIL_REASON_SYNC ||
res->fail_reason == ROAM_FAIL_REASON_DISCONNECT ||
@@ -5789,15 +5789,8 @@ void cm_roam_result_info_event(struct wlan_objmgr_psoc *psoc,
for (i = 0; i < scan_data->num_ap; i++) {
if (i >= MAX_ROAM_CANDIDATE_AP)
break;
if (res->status == 0 &&
scan_data->ap[i].type == WLAN_ROAM_SCAN_ROAMED_AP) {
qdf_mem_copy(wlan_diag_event.diag_cmn.bssid,
scan_data->ap[i].bssid.bytes,
QDF_MAC_ADDR_SIZE);
break;
} else if (scan_data->ap[i].type ==
WLAN_ROAM_SCAN_CURRENT_AP) {
if (scan_data->ap[i].type ==
WLAN_ROAM_SCAN_CURRENT_AP) {
qdf_mem_copy(wlan_diag_event.diag_cmn.bssid,
scan_data->ap[i].bssid.bytes,
QDF_MAC_ADDR_SIZE);
@@ -5806,6 +5799,12 @@ void cm_roam_result_info_event(struct wlan_objmgr_psoc *psoc,
}
}
if (!qdf_is_macaddr_zero(&res->fail_bssid)) {
qdf_mem_copy(wlan_diag_event.diag_cmn.bssid,
res->fail_bssid.bytes,
QDF_MAC_ADDR_SIZE);
}
WLAN_HOST_DIAG_EVENT_REPORT(&wlan_diag_event, EVENT_WLAN_ROAM_RESULT);
qdf_mem_zero(&wlan_diag_event, sizeof(wlan_diag_event));
@@ -6027,8 +6026,8 @@ void cm_roam_result_info_event(struct wlan_objmgr_psoc *psoc,
struct wmi_roam_scan_data *scan_data,
uint8_t vdev_id)
{
struct wlan_log_record *log_record = NULL;
struct qdf_mac_addr bssid = {0};
struct wlan_log_record *log_record = NULL;
uint8_t i;
bool ap_found_in_roam_scan = false, bmiss_skip_full_scan = false;
bool roam_abort = (res->fail_reason == ROAM_FAIL_REASON_SYNC ||
@@ -6080,18 +6079,17 @@ void cm_roam_result_info_event(struct wlan_objmgr_psoc *psoc,
if (i >= MAX_ROAM_CANDIDATE_AP)
break;
if (res->status == 0 &&
scan_data->ap[i].type == WLAN_ROAM_SCAN_ROAMED_AP) {
log_record->bssid = scan_data->ap[i].bssid;
break;
} else if (scan_data->ap[i].type ==
WLAN_ROAM_SCAN_CURRENT_AP) {
if (scan_data->ap[i].type ==
WLAN_ROAM_SCAN_CURRENT_AP) {
log_record->bssid = scan_data->ap[i].bssid;
bssid = scan_data->ap[i].bssid;
break;
}
}
if (!qdf_is_macaddr_zero(&res->fail_bssid))
log_record->bssid = res->fail_bssid;
wlan_connectivity_log_enqueue(log_record);
qdf_mem_zero(log_record, sizeof(*log_record));