From 297247160e2303b4aa5eeaa0e3e842d41e9852ca Mon Sep 17 00:00:00 2001 From: bings Date: Wed, 15 Mar 2017 01:40:50 +0800 Subject: [PATCH] qcacld-3.0: Fix invalid peer local id in sap start bss qcacld-2.0 to qcacld-3.0 propagation Currently when cac ends, it will trigger eSAP_START_BSS_EVENT with peer local id 0. If there is no peer with 0 local id, sap starts fails. Actually valid peer local id should be saved in sap context, so it can be used in sap_signal_hdd_event. Change-Id: I3779cb181390650844475b1a2f18768cb5784cf2 CRs-Fixed: 1096534 --- core/sap/src/sap_api_link_cntl.c | 1 + core/sap/src/sap_fsm.c | 5 +---- core/sap/src/sap_internal.h | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c index 0d6cb6777b4d..a2ca456dca28 100644 --- a/core/sap/src/sap_api_link_cntl.c +++ b/core/sap/src/sap_api_link_cntl.c @@ -1197,6 +1197,7 @@ wlansap_roam_callback(void *ctx, tCsrRoamInfo *csr_roam_info, uint32_t roamId, */ sap_event.event = eSAP_MAC_START_BSS_SUCCESS; sap_event.params = csr_roam_info; + sap_ctx->sap_sta_id = csr_roam_info->staId; sap_event.u1 = roam_status; sap_event.u2 = roam_result; qdf_status = sap_fsm(sap_ctx, &sap_event); diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 76056e74b641..09d9639afc66 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -2874,10 +2874,7 @@ QDF_STATUS sap_signal_hdd_event(ptSapContext sap_ctx, bss_complete = &sap_ap_event.sapevt.sapStartBssCompleteEvent; bss_complete->status = (eSapStatus) context; - if (csr_roaminfo != NULL) - bss_complete->staId = csr_roaminfo->staId; - else - bss_complete->staId = 0; + bss_complete->staId = sap_ctx->sap_sta_id; QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH, FL("(eSAP_START_BSS_EVENT): staId = %d"), diff --git a/core/sap/src/sap_internal.h b/core/sap/src/sap_internal.h index b0ba38998ecf..b801a8506360 100644 --- a/core/sap/src/sap_internal.h +++ b/core/sap/src/sap_internal.h @@ -279,6 +279,7 @@ typedef struct sSapContext { enum sap_acs_dfs_mode dfs_mode; wlan_scan_requester req_id; uint8_t sap_acs_pre_start_bss; + uint8_t sap_sta_id; } *ptSapContext; /*----------------------------------------------------------------------------