mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 15:11:48 -04:00
qcacld-3.0: Clean up del bss param structure
Unused members of delete bss params structure are removed and structure is re-framed. Change-Id: Ib2e7c72e0636765341792a79aa12968a84ed4879 CRs-Fixed: 2512877
This commit is contained in:
parent
dd19316e23
commit
2bd960b047
17 changed files with 129 additions and 144 deletions
|
|
@ -3351,24 +3351,20 @@ QDF_STATUS
|
|||
lim_del_bss(struct mac_context *mac, tpDphHashNode sta, uint16_t bss_idx,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
tpDeleteBssParams pDelBssParams = NULL;
|
||||
struct del_bss_param *pDelBssParams = NULL;
|
||||
struct scheduler_msg msgQ = {0};
|
||||
QDF_STATUS retCode = QDF_STATUS_SUCCESS;
|
||||
|
||||
pDelBssParams = qdf_mem_malloc(sizeof(tDeleteBssParams));
|
||||
pDelBssParams = qdf_mem_malloc(sizeof(*pDelBssParams));
|
||||
if (!pDelBssParams)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
pDelBssParams->sessionId = pe_session->peSessionId; /* update PE session Id */
|
||||
|
||||
/* DPH was storing the AssocID in staID field, */
|
||||
/* staID is actually assigned by HAL when AddSTA message is sent. */
|
||||
if (sta) {
|
||||
pDelBssParams->bss_idx = sta->bssId;
|
||||
sta->valid = 0;
|
||||
sta->mlmStaContext.mlmState = eLIM_MLM_WT_DEL_BSS_RSP_STATE;
|
||||
} else
|
||||
pDelBssParams->bss_idx = bss_idx;
|
||||
}
|
||||
pe_session->limMlmState = eLIM_MLM_WT_DEL_BSS_RSP_STATE;
|
||||
MTRACE(mac_trace
|
||||
(mac, TRACE_CODE_MLM_STATE, pe_session->peSessionId,
|
||||
|
|
@ -3382,14 +3378,13 @@ lim_del_bss(struct mac_context *mac, tpDphHashNode sta, uint16_t bss_idx,
|
|||
}
|
||||
|
||||
pDelBssParams->status = QDF_STATUS_SUCCESS;
|
||||
pDelBssParams->respReqd = 1;
|
||||
qdf_mem_copy(pDelBssParams->bssid, pe_session->bssId,
|
||||
sizeof(tSirMacAddr));
|
||||
pDelBssParams->smesessionId = pe_session->smeSessionId;
|
||||
pe_debug("Sessionid %d : Sending HAL_DELETE_BSS_REQ "
|
||||
"for bss idx: %X BSSID:" QDF_MAC_ADDR_STR,
|
||||
pDelBssParams->sessionId, pDelBssParams->bss_idx,
|
||||
QDF_MAC_ADDR_ARRAY(pe_session->bssId));
|
||||
pDelBssParams->vdev_id = pe_session->smeSessionId;
|
||||
pe_debug("Sessionid %d : Sending HAL_DELETE_BSS_REQ BSSID:"
|
||||
QDF_MAC_ADDR_STR,
|
||||
pe_session->peSessionId,
|
||||
QDF_MAC_ADDR_ARRAY(pe_session->bssId));
|
||||
/* we need to defer the message until we get the response back from HAL. */
|
||||
SET_LIM_PROCESS_DEFD_MESGS(mac, false);
|
||||
|
||||
|
|
|
|||
|
|
@ -1207,7 +1207,7 @@ lim_ibss_add_sta_rsp(struct mac_context *mac, void *msg, struct pe_session *pe_s
|
|||
void lim_ibss_del_bss_rsp_when_coalescing(struct mac_context *mac, void *msg,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) msg;
|
||||
struct del_bss_param *pDelBss = (struct del_bss_param *)msg;
|
||||
|
||||
pe_debug("IBSS: DEL_BSS_RSP Rcvd during coalescing!");
|
||||
|
||||
|
|
@ -1217,8 +1217,8 @@ void lim_ibss_del_bss_rsp_when_coalescing(struct mac_context *mac, void *msg,
|
|||
}
|
||||
|
||||
if (pDelBss->status != QDF_STATUS_SUCCESS) {
|
||||
pe_err("IBSS: DEL_BSS_RSP(coalesce) error: %x Bss: %d",
|
||||
pDelBss->status, pDelBss->bss_idx);
|
||||
pe_err("IBSS: DEL_BSS_RSP(coalesce) error: %x",
|
||||
pDelBss->status);
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
|
@ -1271,7 +1271,7 @@ end:
|
|||
void lim_ibss_del_bss_rsp(struct mac_context *mac, void *msg, struct pe_session *pe_session)
|
||||
{
|
||||
tSirResultCodes rc = eSIR_SME_SUCCESS;
|
||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) msg;
|
||||
struct del_bss_param *pDelBss = (struct del_bss_param *)msg;
|
||||
tSirMacAddr nullBssid = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
|
||||
|
|
@ -1281,7 +1281,7 @@ void lim_ibss_del_bss_rsp(struct mac_context *mac, void *msg, struct pe_session
|
|||
goto end;
|
||||
}
|
||||
|
||||
pe_session = pe_find_session_by_session_id(mac, pDelBss->sessionId);
|
||||
pe_session = pe_find_session_by_sme_session_id(mac, pDelBss->vdev_id);
|
||||
if (!pe_session) {
|
||||
pe_err("Session Does not exist for given sessionID");
|
||||
goto end;
|
||||
|
|
@ -1300,8 +1300,7 @@ void lim_ibss_del_bss_rsp(struct mac_context *mac, void *msg, struct pe_session
|
|||
}
|
||||
|
||||
if (pDelBss->status != QDF_STATUS_SUCCESS) {
|
||||
pe_err("IBSS: DEL_BSS_RSP error: %x Bss: %d",
|
||||
pDelBss->status, pDelBss->bss_idx);
|
||||
pe_err("IBSS: DEL_BSS_RSP error: %x", pDelBss->status);
|
||||
rc = eSIR_SME_STOP_BSS_FAILURE;
|
||||
goto end;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1938,7 +1938,7 @@ static void lim_process_messages(struct mac_context *mac_ctx,
|
|||
break;
|
||||
case WMA_DELETE_BSS_RSP:
|
||||
case WMA_DELETE_BSS_HO_FAIL_RSP:
|
||||
lim_handle_delete_bss_rsp(mac_ctx, msg);
|
||||
lim_handle_delete_bss_rsp(mac_ctx, msg->bodyptr);
|
||||
break;
|
||||
case WMA_CSA_OFFLOAD_EVENT:
|
||||
lim_handle_csa_offload_msg(mac_ctx, msg);
|
||||
|
|
|
|||
|
|
@ -1567,7 +1567,7 @@ end:
|
|||
}
|
||||
|
||||
void lim_process_mlm_del_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct del_bss_param *pDelBss,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
/* we need to process the deferred message since the initiating req. there might be nested request. */
|
||||
|
|
@ -1578,10 +1578,10 @@ void lim_process_mlm_del_bss_rsp(struct mac_context *mac,
|
|||
|
||||
if (LIM_IS_AP_ROLE(pe_session) &&
|
||||
(pe_session->statypeForBss == STA_ENTRY_SELF)) {
|
||||
lim_process_ap_mlm_del_bss_rsp(mac, limMsgQ, pe_session);
|
||||
lim_process_ap_mlm_del_bss_rsp(mac, pDelBss, pe_session);
|
||||
return;
|
||||
}
|
||||
lim_process_sta_mlm_del_bss_rsp(mac, limMsgQ, pe_session);
|
||||
lim_process_sta_mlm_del_bss_rsp(mac, pDelBss, pe_session);
|
||||
|
||||
#ifdef WLAN_FEATURE_11W
|
||||
if (pe_session->limRmfEnabled) {
|
||||
|
|
@ -1594,10 +1594,9 @@ void lim_process_mlm_del_bss_rsp(struct mac_context *mac,
|
|||
}
|
||||
|
||||
void lim_process_sta_mlm_del_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct del_bss_param *pDelBssParams,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
tpDeleteBssParams pDelBssParams = (tpDeleteBssParams) limMsgQ->bodyptr;
|
||||
tpDphHashNode sta =
|
||||
dph_get_hash_entry(mac, DPH_STA_HASH_INDEX_PEER,
|
||||
&pe_session->dph.dphHashTable);
|
||||
|
|
@ -1608,8 +1607,7 @@ void lim_process_sta_mlm_del_bss_rsp(struct mac_context *mac,
|
|||
goto end;
|
||||
}
|
||||
if (QDF_STATUS_SUCCESS == pDelBssParams->status) {
|
||||
pe_debug("STA received the DEL_BSS_RSP for BSSID: %X",
|
||||
pDelBssParams->bss_idx);
|
||||
pe_debug("STA received the DEL_BSS_RSP");
|
||||
if (lim_set_link_state
|
||||
(mac, eSIR_LINK_IDLE_STATE, pe_session->bssId,
|
||||
pe_session->self_mac_addr, NULL,
|
||||
|
|
@ -1637,10 +1635,9 @@ void lim_process_sta_mlm_del_bss_rsp(struct mac_context *mac,
|
|||
status_code = eSIR_SME_STOP_BSS_FAILURE;
|
||||
}
|
||||
end:
|
||||
if (0 != limMsgQ->bodyptr) {
|
||||
if (pDelBssParams)
|
||||
qdf_mem_free(pDelBssParams);
|
||||
limMsgQ->bodyptr = NULL;
|
||||
}
|
||||
|
||||
if (!sta)
|
||||
return;
|
||||
if ((LIM_IS_STA_ROLE(pe_session)) &&
|
||||
|
|
@ -1662,19 +1659,17 @@ end:
|
|||
}
|
||||
|
||||
void lim_process_ap_mlm_del_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct del_bss_param *pDelBss,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
tSirResultCodes rc = eSIR_SME_SUCCESS;
|
||||
QDF_STATUS status;
|
||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) limMsgQ->bodyptr;
|
||||
tSirMacAddr nullBssid = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
|
||||
if (!pe_session) {
|
||||
pe_err("Session entry passed is NULL");
|
||||
if (pDelBss) {
|
||||
qdf_mem_free(pDelBss);
|
||||
limMsgQ->bodyptr = NULL;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
@ -1696,8 +1691,7 @@ void lim_process_ap_mlm_del_bss_rsp(struct mac_context *mac,
|
|||
goto end;
|
||||
}
|
||||
if (pDelBss->status != QDF_STATUS_SUCCESS) {
|
||||
pe_err("BSS: DEL_BSS_RSP error (%x) Bss %d",
|
||||
pDelBss->status, pDelBss->bss_idx);
|
||||
pe_err("BSS: DEL_BSS_RSP error (%x)", pDelBss->status);
|
||||
rc = eSIR_SME_STOP_BSS_FAILURE;
|
||||
goto end;
|
||||
}
|
||||
|
|
@ -1722,7 +1716,6 @@ end:
|
|||
|
||||
if (pDelBss) {
|
||||
qdf_mem_free(pDelBss);
|
||||
limMsgQ->bodyptr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3000,10 +3000,8 @@ static bool __lim_process_sme_stop_bss_req(struct mac_context *mac,
|
|||
} /*** end __lim_process_sme_stop_bss_req() ***/
|
||||
|
||||
void lim_process_sme_del_bss_rsp(struct mac_context *mac,
|
||||
uint32_t body, struct pe_session *pe_session)
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
|
||||
(void)body;
|
||||
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
|
||||
lim_ibss_delete(mac, pe_session);
|
||||
dph_hash_table_init(mac, &pe_session->dph.dphHashTable);
|
||||
|
|
|
|||
|
|
@ -1829,18 +1829,17 @@ err:
|
|||
\sa
|
||||
--------------------------------------------------------------------------*/
|
||||
|
||||
void lim_handle_delete_bss_rsp(struct mac_context *mac, struct scheduler_msg *MsgQ)
|
||||
void lim_handle_delete_bss_rsp(struct mac_context *mac,
|
||||
struct del_bss_param *pDelBss)
|
||||
{
|
||||
struct pe_session *pe_session;
|
||||
tpDeleteBssParams pDelBss = (tpDeleteBssParams) (MsgQ->bodyptr);
|
||||
|
||||
pe_session =
|
||||
pe_find_session_by_session_id(mac, pDelBss->sessionId);
|
||||
pe_find_session_by_sme_session_id(mac, pDelBss->vdev_id);
|
||||
if (!pe_session) {
|
||||
pe_err("Session Does not exist for given sessionID: %d",
|
||||
pDelBss->sessionId);
|
||||
qdf_mem_free(MsgQ->bodyptr);
|
||||
MsgQ->bodyptr = NULL;
|
||||
pe_err("Session Does not exist for vdev id: %d",
|
||||
pDelBss->vdev_id);
|
||||
qdf_mem_free(pDelBss);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1852,13 +1851,13 @@ void lim_handle_delete_bss_rsp(struct mac_context *mac, struct scheduler_msg *Ms
|
|||
*/
|
||||
pe_session->process_ho_fail = false;
|
||||
if (LIM_IS_IBSS_ROLE(pe_session))
|
||||
lim_ibss_del_bss_rsp(mac, MsgQ->bodyptr, pe_session);
|
||||
lim_ibss_del_bss_rsp(mac, pDelBss, pe_session);
|
||||
else if (LIM_IS_UNKNOWN_ROLE(pe_session))
|
||||
lim_process_sme_del_bss_rsp(mac, MsgQ->bodyval, pe_session);
|
||||
lim_process_sme_del_bss_rsp(mac, pe_session);
|
||||
else if (LIM_IS_NDI_ROLE(pe_session))
|
||||
lim_ndi_del_bss_rsp(mac, MsgQ->bodyptr, pe_session);
|
||||
lim_ndi_del_bss_rsp(mac, pDelBss, pe_session);
|
||||
else
|
||||
lim_process_mlm_del_bss_rsp(mac, MsgQ, pe_session);
|
||||
lim_process_mlm_del_bss_rsp(mac, pDelBss, pe_session);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ void lim_send_sme_set_context_rsp(struct mac_context *mac,
|
|||
uint8_t smesessionId);
|
||||
|
||||
void lim_handle_delete_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *MsgQ);
|
||||
struct del_bss_param *pDelBss);
|
||||
|
||||
void lim_handle_csa_offload_msg(struct mac_context *mac_ctx,
|
||||
struct scheduler_msg *msg);
|
||||
|
|
|
|||
|
|
@ -340,7 +340,8 @@ typedef struct sLimMlmSetKeysCnf {
|
|||
bool lim_process_sme_req_messages(struct mac_context *, struct scheduler_msg *);
|
||||
void lim_process_mlm_req_messages(struct mac_context *, struct scheduler_msg *);
|
||||
void lim_process_mlm_rsp_messages(struct mac_context *, uint32_t, uint32_t *);
|
||||
void lim_process_sme_del_bss_rsp(struct mac_context *, uint32_t, struct pe_session *);
|
||||
void lim_process_sme_del_bss_rsp(struct mac_context *mac,
|
||||
struct pe_session *pe_session);
|
||||
|
||||
/**
|
||||
* lim_process_mlm_start_cnf(): called to processes MLM_START_CNF message from
|
||||
|
|
@ -755,8 +756,8 @@ void lim_process_mlm_add_sta_rsp(struct mac_context *mac,
|
|||
void lim_process_mlm_del_sta_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ);
|
||||
void lim_process_mlm_del_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct pe_session *);
|
||||
struct del_bss_param *pDelBss,
|
||||
struct pe_session *pe_session);
|
||||
void lim_process_sta_mlm_add_sta_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct pe_session *pe_session);
|
||||
|
|
@ -764,7 +765,7 @@ void lim_process_sta_mlm_del_sta_rsp(struct mac_context *mac,
|
|||
struct scheduler_msg *limMsgQ,
|
||||
struct pe_session *pe_session);
|
||||
void lim_process_sta_mlm_del_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct del_bss_param *pDelBssParams,
|
||||
struct pe_session *pe_session);
|
||||
void lim_process_mlm_set_sta_key_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ);
|
||||
|
|
|
|||
|
|
@ -533,8 +533,8 @@ void lim_process_ap_mlm_add_sta_rsp(struct mac_context *mac,
|
|||
struct scheduler_msg *limMsgQ,
|
||||
struct pe_session *pe_session);
|
||||
void lim_process_ap_mlm_del_bss_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
struct pe_session *pe_session);
|
||||
struct del_bss_param *pDelBss,
|
||||
struct pe_session *pe_session);
|
||||
|
||||
void lim_process_ap_mlm_del_sta_rsp(struct mac_context *mac,
|
||||
struct scheduler_msg *limMsgQ,
|
||||
|
|
|
|||
|
|
@ -382,10 +382,10 @@ void lim_process_ndi_mlm_add_bss_rsp(struct mac_context *mac_ctx,
|
|||
* Return: None
|
||||
*/
|
||||
void lim_ndi_del_bss_rsp(struct mac_context * mac_ctx,
|
||||
void *msg, struct pe_session *session_entry)
|
||||
struct del_bss_param *del_bss,
|
||||
struct pe_session *session_entry)
|
||||
{
|
||||
tSirResultCodes rc = eSIR_SME_SUCCESS;
|
||||
tpDeleteBssParams del_bss = (tpDeleteBssParams) msg;
|
||||
|
||||
SET_LIM_PROCESS_DEFD_MESGS(mac_ctx, true);
|
||||
if (!del_bss) {
|
||||
|
|
@ -394,15 +394,14 @@ void lim_ndi_del_bss_rsp(struct mac_context * mac_ctx,
|
|||
goto end;
|
||||
}
|
||||
session_entry =
|
||||
pe_find_session_by_session_id(mac_ctx, del_bss->sessionId);
|
||||
pe_find_session_by_sme_session_id(mac_ctx, del_bss->vdev_id);
|
||||
if (!session_entry) {
|
||||
pe_err("Session Does not exist for given sessionID");
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (del_bss->status != QDF_STATUS_SUCCESS) {
|
||||
pe_err("NDI: DEL_BSS_RSP error (%x) Bss %d",
|
||||
del_bss->status, del_bss->bss_idx);
|
||||
pe_err("NDI: DEL_BSS_RSP error (%x)", del_bss->status);
|
||||
rc = eSIR_SME_STOP_BSS_FAILURE;
|
||||
goto end;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,9 +46,11 @@ void lim_process_ndi_mlm_add_bss_rsp(struct mac_context *mac_ctx,
|
|||
struct pe_session *session_entry);
|
||||
/* Handler for DEL BSS resp for NDI interface */
|
||||
void lim_ndi_del_bss_rsp(struct mac_context * mac_ctx,
|
||||
void *msg, struct pe_session *session_entry);
|
||||
struct del_bss_param *del_bss,
|
||||
struct pe_session *session_entry);
|
||||
|
||||
void lim_ndp_add_sta_rsp(struct mac_context *mac_ctx, struct pe_session *session_entry,
|
||||
void lim_ndp_add_sta_rsp(struct mac_context *mac_ctx,
|
||||
struct pe_session *session_entry,
|
||||
tAddStaParams *add_sta_rsp);
|
||||
|
||||
void lim_process_ndi_del_sta_rsp(struct mac_context *mac_ctx,
|
||||
|
|
@ -71,19 +73,25 @@ void lim_process_ndi_mlm_add_bss_rsp(struct mac_context *mac_ctx,
|
|||
struct pe_session *session_entry)
|
||||
{
|
||||
}
|
||||
static inline void lim_ndi_del_bss_rsp(struct mac_context *mac_ctx,
|
||||
void *msg, struct pe_session *session_entry)
|
||||
{
|
||||
}
|
||||
static inline void lim_process_ndi_del_sta_rsp(struct mac_context *mac_ctx,
|
||||
struct scheduler_msg *lim_msg,
|
||||
struct pe_session *pe_session)
|
||||
|
||||
static inline
|
||||
void lim_ndi_del_bss_rsp(struct mac_context *mac_ctx,
|
||||
struct del_bss_param *del_bss,
|
||||
struct pe_session *session_entry)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void lim_ndp_add_sta_rsp(struct mac_context *mac_ctx,
|
||||
struct pe_session *session_entry,
|
||||
tAddStaParams *add_sta_rsp)
|
||||
static inline
|
||||
void lim_process_ndi_del_sta_rsp(struct mac_context *mac_ctx,
|
||||
struct scheduler_msg *lim_msg,
|
||||
struct pe_session *pe_session)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void lim_ndp_add_sta_rsp(struct mac_context *mac_ctx,
|
||||
struct pe_session *session_entry,
|
||||
tAddStaParams *add_sta_rsp)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -496,22 +496,16 @@ struct bss_params {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct tDeleteBssParams - params required for del bss request
|
||||
* @bss_idx: BSSID
|
||||
* struct struct del_bss_param - params required for del bss request
|
||||
* @status: QDF status
|
||||
* @respReqd: response message to LIM only when this flag is set
|
||||
* @sessionId: PE session id
|
||||
* @bssid: BSSID mac address
|
||||
* @smesessionId: sme session id
|
||||
* @vdev_id: vdev_id
|
||||
*/
|
||||
typedef struct {
|
||||
uint8_t bss_idx;
|
||||
struct del_bss_param {
|
||||
QDF_STATUS status;
|
||||
uint8_t respReqd;
|
||||
uint8_t sessionId;
|
||||
tSirMacAddr bssid;
|
||||
uint8_t smesessionId;
|
||||
} tDeleteBssParams, *tpDeleteBssParams;
|
||||
uint8_t vdev_id;
|
||||
};
|
||||
|
||||
typedef enum eDelStaReasonCode {
|
||||
HAL_DEL_STA_REASON_CODE_KEEP_ALIVE = 0x1,
|
||||
|
|
|
|||
|
|
@ -672,14 +672,14 @@ void wma_add_sta(tp_wma_handle wma, tpAddStaParams add_sta);
|
|||
|
||||
void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta);
|
||||
|
||||
void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params);
|
||||
void wma_delete_bss(tp_wma_handle wma, struct del_bss_param *params);
|
||||
|
||||
int32_t wma_find_vdev_by_type(tp_wma_handle wma, int32_t type);
|
||||
|
||||
void wma_set_vdev_intrabss_fwd(tp_wma_handle wma_handle,
|
||||
tpDisableIntraBssFwd pdis_intra_fwd);
|
||||
|
||||
void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params);
|
||||
void wma_delete_bss_ho_fail(tp_wma_handle wma, struct del_bss_param *params);
|
||||
|
||||
uint32_t wma_get_bcn_rate_code(uint16_t rate);
|
||||
|
||||
|
|
|
|||
|
|
@ -2068,7 +2068,7 @@ static void wma_cleanup_target_req_param(struct wma_target_req *tgt_req)
|
|||
* Return: 0 on success, ERROR code on failure
|
||||
*/
|
||||
static int wma_remove_bss_peer(tp_wma_handle wma, void *pdev, uint32_t vdev_id,
|
||||
tpDeleteBssParams params)
|
||||
struct del_bss_param *params)
|
||||
{
|
||||
void *peer, *vdev;
|
||||
uint8_t peer_id;
|
||||
|
|
@ -2221,7 +2221,7 @@ void wma_send_del_bss_response(tp_wma_handle wma, struct wma_target_req *req)
|
|||
{
|
||||
struct wma_txrx_node *iface;
|
||||
struct beacon_info *bcn;
|
||||
tpDeleteBssParams params;
|
||||
struct del_bss_param *params;
|
||||
uint8_t vdev_id;
|
||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||
|
||||
|
|
@ -2241,7 +2241,7 @@ void wma_send_del_bss_response(tp_wma_handle wma, struct wma_target_req *req)
|
|||
return;
|
||||
}
|
||||
|
||||
params = (tpDeleteBssParams)req->user_data;
|
||||
params = (struct del_bss_param *)req->user_data;
|
||||
|
||||
cdp_fc_vdev_flush(soc, iface->handle);
|
||||
WMA_LOGD("%s, vdev_id: %d, un-pausing tx_ll_queue for VDEV_STOP rsp",
|
||||
|
|
@ -2398,8 +2398,8 @@ __wma_handle_vdev_stop_rsp(struct vdev_stop_response *resp_event)
|
|||
|
||||
qdf_mc_timer_stop(&req_msg->event_timeout);
|
||||
if (req_msg->msg_type == WMA_DELETE_BSS_HO_FAIL_REQ) {
|
||||
tpDeleteBssParams params =
|
||||
(tpDeleteBssParams)req_msg->user_data;
|
||||
struct del_bss_param *params =
|
||||
(struct del_bss_param *)req_msg->user_data;
|
||||
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
params->bssid, &peer_id);
|
||||
|
|
@ -2412,7 +2412,7 @@ __wma_handle_vdev_stop_rsp(struct vdev_stop_response *resp_event)
|
|||
|
||||
if (!iface->peer_count) {
|
||||
WMA_LOGE("%s: Can't remove peer with peer_addr %pM vdevid %d peer_count %d",
|
||||
__func__, params->bssid, params->smesessionId,
|
||||
__func__, params->bssid, resp_event->vdev_id,
|
||||
iface->peer_count);
|
||||
goto free_req_msg;
|
||||
}
|
||||
|
|
@ -2420,7 +2420,7 @@ __wma_handle_vdev_stop_rsp(struct vdev_stop_response *resp_event)
|
|||
if (peer) {
|
||||
WMA_LOGD("%s: vdev %pK is peer_addr %pM to vdev_id %d, peer_count - %d",
|
||||
__func__, peer, params->bssid,
|
||||
params->smesessionId, iface->peer_count);
|
||||
resp_event->vdev_id, iface->peer_count);
|
||||
if (cdp_cfg_get_peer_unmap_conf_support(soc))
|
||||
cdp_peer_delete_sync(soc, peer,
|
||||
wma_peer_unmap_conf_cb,
|
||||
|
|
@ -2428,18 +2428,18 @@ __wma_handle_vdev_stop_rsp(struct vdev_stop_response *resp_event)
|
|||
else
|
||||
cdp_peer_delete(soc, peer,
|
||||
1 << CDP_PEER_DELETE_NO_SPECIAL);
|
||||
wma_remove_objmgr_peer(wma, params->smesessionId,
|
||||
wma_remove_objmgr_peer(wma, resp_event->vdev_id,
|
||||
params->bssid);
|
||||
}
|
||||
iface->peer_count--;
|
||||
|
||||
WMA_LOGI("%s: Removed peer %pK with peer_addr %pM vdevid %d peer_count %d",
|
||||
__func__, peer, params->bssid, params->smesessionId,
|
||||
__func__, peer, params->bssid, resp_event->vdev_id,
|
||||
iface->peer_count);
|
||||
wma_send_vdev_down_req(wma, req_msg);
|
||||
} else if (req_msg->msg_type == WMA_DELETE_BSS_REQ) {
|
||||
tpDeleteBssParams params =
|
||||
(tpDeleteBssParams) req_msg->user_data;
|
||||
struct del_bss_param *params =
|
||||
(struct del_bss_param *)req_msg->user_data;
|
||||
|
||||
if (!iface->handle) {
|
||||
WMA_LOGE("%s vdev id %d is already deleted",
|
||||
|
|
@ -3469,8 +3469,8 @@ void wma_hold_req_timer(void *data)
|
|||
wma_send_msg(wma, WMA_SET_LINK_STATE_RSP, params, 0);
|
||||
} else if ((tgt_req->msg_type == WMA_DELETE_STA_REQ) &&
|
||||
(tgt_req->type == WMA_DELETE_PEER_RSP)) {
|
||||
tpDeleteBssParams params =
|
||||
(tpDeleteBssParams) tgt_req->user_data;
|
||||
struct del_bss_param *params =
|
||||
(struct del_bss_param *)tgt_req->user_data;
|
||||
|
||||
params->status = QDF_STATUS_E_TIMEOUT;
|
||||
WMA_LOGE(FL("wma delete peer for del bss req timed out"));
|
||||
|
|
@ -3718,8 +3718,8 @@ void wma_vdev_resp_timer(void *data)
|
|||
|
||||
wma_handle_channel_switch_req_timeout(wma, tgt_req);
|
||||
} else if (tgt_req->msg_type == WMA_DELETE_BSS_REQ) {
|
||||
tpDeleteBssParams params =
|
||||
(tpDeleteBssParams) tgt_req->user_data;
|
||||
struct del_bss_param *params =
|
||||
(struct del_bss_param *)tgt_req->user_data;
|
||||
struct beacon_info *bcn;
|
||||
|
||||
if (tgt_req->vdev_id >= wma->max_bssid) {
|
||||
|
|
@ -5677,7 +5677,7 @@ void wma_delete_sta(tp_wma_handle wma, tpDeleteStaParams del_sta)
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
||||
void wma_delete_bss_ho_fail(tp_wma_handle wma, struct del_bss_param *params)
|
||||
{
|
||||
struct cdp_pdev *pdev;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
|
@ -5694,15 +5694,15 @@ void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
goto fail_del_bss_ho_fail;
|
||||
}
|
||||
|
||||
iface = &wma->interfaces[params->smesessionId];
|
||||
iface = &wma->interfaces[params->vdev_id];
|
||||
if (!iface || !iface->handle) {
|
||||
WMA_LOGE("%s vdev id %d is already deleted",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
goto fail_del_bss_ho_fail;
|
||||
}
|
||||
qdf_mem_zero(iface->bssid, QDF_MAC_ADDR_SIZE);
|
||||
|
||||
txrx_vdev = wma_find_vdev_by_id(wma, params->smesessionId);
|
||||
txrx_vdev = wma_find_vdev_by_id(wma, params->vdev_id);
|
||||
if (!txrx_vdev) {
|
||||
WMA_LOGE("%s:Invalid vdev handle", __func__);
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -5730,39 +5730,39 @@ void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
}
|
||||
|
||||
WMA_LOGD("%s, vdev_id: %d, pausing tx_ll_queue for VDEV_STOP (del_bss)",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
cdp_fc_vdev_pause(soc, iface->handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
wma_vdev_set_pause_bit(params->smesessionId, PAUSE_TYPE_HOST);
|
||||
wma_vdev_set_pause_bit(params->vdev_id, PAUSE_TYPE_HOST);
|
||||
|
||||
cdp_fc_vdev_flush(soc, iface->handle);
|
||||
WMA_LOGD("%s, vdev_id: %d, un-pausing tx_ll_queue for VDEV_STOP rsp",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
cdp_fc_vdev_unpause(soc, iface->handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
wma_vdev_clear_pause_bit(params->smesessionId, PAUSE_TYPE_HOST);
|
||||
wma_vdev_clear_pause_bit(params->vdev_id, PAUSE_TYPE_HOST);
|
||||
qdf_atomic_set(&iface->bss_status, WMA_BSS_STATUS_STOPPED);
|
||||
WMA_LOGD("%s: (type %d subtype %d) BSS is stopped",
|
||||
__func__, iface->type, iface->sub_type);
|
||||
params->status = QDF_STATUS_SUCCESS;
|
||||
|
||||
msg = wma_fill_vdev_req(wma, params->smesessionId,
|
||||
msg = wma_fill_vdev_req(wma, params->vdev_id,
|
||||
WMA_DELETE_BSS_HO_FAIL_REQ,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_STOP, params,
|
||||
WMA_VDEV_STOP_REQUEST_TIMEOUT);
|
||||
if (!msg) {
|
||||
WMA_LOGE("%s: Failed to fill vdev request for vdev_id %d",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
status = QDF_STATUS_E_NOMEM;
|
||||
goto fail_del_bss_ho_fail;
|
||||
}
|
||||
|
||||
/* Try to use the vdev stop response path */
|
||||
resp_event.vdev_id = params->smesessionId;
|
||||
resp_event.vdev_id = params->vdev_id;
|
||||
status = wma_handle_vdev_stop_rsp(wma, &resp_event);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
WMA_LOGE("%s: Failed to handle vdev stop rsp for vdev_id %d",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
goto fail_del_bss_ho_fail;
|
||||
}
|
||||
|
||||
|
|
@ -5818,7 +5818,7 @@ static void wma_wait_tx_complete(tp_wma_handle wma,
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
||||
void wma_delete_bss(tp_wma_handle wma, struct del_bss_param *params)
|
||||
{
|
||||
struct cdp_pdev *pdev;
|
||||
void *peer = NULL;
|
||||
|
|
@ -5836,17 +5836,17 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
WMA_LOGE("%s:Unable to get TXRX context", __func__);
|
||||
goto out;
|
||||
}
|
||||
if (wma_is_vdev_in_ibss_mode(wma, params->smesessionId))
|
||||
if (wma_is_vdev_in_ibss_mode(wma, params->vdev_id))
|
||||
/* in rome ibss case, self mac is used to create the bss peer */
|
||||
peer = cdp_peer_find_by_addr(soc,
|
||||
pdev,
|
||||
wma->interfaces[params->smesessionId].addr,
|
||||
wma->interfaces[params->vdev_id].addr,
|
||||
&peer_id);
|
||||
else if (WMA_IS_VDEV_IN_NDI_MODE(wma->interfaces,
|
||||
params->smesessionId))
|
||||
params->vdev_id))
|
||||
/* In ndi case, self mac is used to create the self peer */
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
wma->interfaces[params->smesessionId].addr,
|
||||
wma->interfaces[params->vdev_id].addr,
|
||||
&peer_id);
|
||||
else
|
||||
peer = cdp_peer_find_by_addr(soc, pdev,
|
||||
|
|
@ -5860,20 +5860,20 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
goto out;
|
||||
}
|
||||
|
||||
qdf_mem_zero(wma->interfaces[params->smesessionId].bssid,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
qdf_mem_zero(wma->interfaces[params->vdev_id].bssid,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
|
||||
txrx_vdev = wma_find_vdev_by_id(wma, params->smesessionId);
|
||||
txrx_vdev = wma_find_vdev_by_id(wma, params->vdev_id);
|
||||
if (!txrx_vdev) {
|
||||
WMA_LOGE("%s:Invalid vdev handle", __func__);
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
goto out;
|
||||
}
|
||||
|
||||
iface = &wma->interfaces[params->smesessionId];
|
||||
iface = &wma->interfaces[params->vdev_id];
|
||||
if (!iface || !iface->handle) {
|
||||
WMA_LOGE("%s vdev id %d is already deleted",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
@ -5900,26 +5900,26 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
if (wlan_op_mode_ibss == cdp_get_opmode(soc, txrx_vdev))
|
||||
wma->ibss_started = 0;
|
||||
|
||||
if (wma_is_roam_synch_in_progress(wma, params->smesessionId)) {
|
||||
if (wma_is_roam_synch_in_progress(wma, params->vdev_id)) {
|
||||
roam_synch_in_progress = true;
|
||||
WMA_LOGD("LFR3:%s: Setting vdev_up to FALSE for session %d",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
|
||||
goto detach_peer;
|
||||
}
|
||||
msg = wma_fill_vdev_req(wma, params->smesessionId, WMA_DELETE_BSS_REQ,
|
||||
msg = wma_fill_vdev_req(wma, params->vdev_id, WMA_DELETE_BSS_REQ,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_STOP, params,
|
||||
WMA_VDEV_STOP_REQUEST_TIMEOUT);
|
||||
if (!msg) {
|
||||
WMA_LOGE("%s: Failed to fill vdev request for vdev_id %d",
|
||||
__func__, params->smesessionId);
|
||||
__func__, params->vdev_id);
|
||||
status = QDF_STATUS_E_NOMEM;
|
||||
goto detach_peer;
|
||||
}
|
||||
|
||||
WMA_LOGD(FL("Outstanding msdu packets: %d"),
|
||||
cdp_get_tx_pending(soc, pdev));
|
||||
wma_wait_tx_complete(wma, params->smesessionId);
|
||||
wma_wait_tx_complete(wma, params->vdev_id);
|
||||
|
||||
if (cdp_get_tx_pending(soc, pdev)) {
|
||||
WMA_LOGW(FL("Outstanding msdu packets before VDEV_STOP : %d"),
|
||||
|
|
@ -5927,26 +5927,26 @@ void wma_delete_bss(tp_wma_handle wma, tpDeleteBssParams params)
|
|||
}
|
||||
|
||||
WMA_LOGD("%s, vdev_id: %d, pausing tx_ll_queue for VDEV_STOP (del_bss)",
|
||||
__func__, params->smesessionId);
|
||||
wma_vdev_set_pause_bit(params->smesessionId, PAUSE_TYPE_HOST);
|
||||
__func__, params->vdev_id);
|
||||
wma_vdev_set_pause_bit(params->vdev_id, PAUSE_TYPE_HOST);
|
||||
cdp_fc_vdev_pause(soc,
|
||||
wma->interfaces[params->smesessionId].handle,
|
||||
wma->interfaces[params->vdev_id].handle,
|
||||
OL_TXQ_PAUSE_REASON_VDEV_STOP);
|
||||
|
||||
if (wma_send_vdev_stop_to_fw(wma, params->smesessionId)) {
|
||||
if (wma_send_vdev_stop_to_fw(wma, params->vdev_id)) {
|
||||
WMA_LOGE("%s: %d Failed to send vdev stop", __func__, __LINE__);
|
||||
wma_remove_vdev_req(wma, params->smesessionId,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_STOP);
|
||||
wma_remove_vdev_req(wma, params->vdev_id,
|
||||
WMA_TARGET_REQ_TYPE_VDEV_STOP);
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
goto detach_peer;
|
||||
}
|
||||
WMA_LOGD("%s: bssid %pM vdev_id %d",
|
||||
__func__, params->bssid, params->smesessionId);
|
||||
__func__, params->bssid, params->vdev_id);
|
||||
return;
|
||||
detach_peer:
|
||||
wma_remove_peer(wma, params->bssid, params->smesessionId, peer,
|
||||
wma_remove_peer(wma, params->bssid, params->vdev_id, peer,
|
||||
roam_synch_in_progress);
|
||||
if (wma_is_roam_synch_in_progress(wma, params->smesessionId))
|
||||
if (wma_is_roam_synch_in_progress(wma, params->vdev_id))
|
||||
return;
|
||||
|
||||
out:
|
||||
|
|
|
|||
|
|
@ -8515,11 +8515,10 @@ static QDF_STATUS wma_mc_process_msg(struct scheduler_msg *msg)
|
|||
wma_delete_sta(wma_handle, (tpDeleteStaParams) msg->bodyptr);
|
||||
break;
|
||||
case WMA_DELETE_BSS_HO_FAIL_REQ:
|
||||
wma_delete_bss_ho_fail(wma_handle,
|
||||
(tpDeleteBssParams) msg->bodyptr);
|
||||
wma_delete_bss_ho_fail(wma_handle, msg->bodyptr);
|
||||
break;
|
||||
case WMA_DELETE_BSS_REQ:
|
||||
wma_delete_bss(wma_handle, (tpDeleteBssParams) msg->bodyptr);
|
||||
wma_delete_bss(wma_handle, msg->bodyptr);
|
||||
break;
|
||||
case WMA_UPDATE_EDCA_PROFILE_IND:
|
||||
wma_process_update_edca_param_req(wma_handle,
|
||||
|
|
|
|||
|
|
@ -2621,7 +2621,7 @@ static void
|
|||
wma_roam_update_vdev(tp_wma_handle wma,
|
||||
struct roam_offload_synch_ind *roam_synch_ind_ptr)
|
||||
{
|
||||
tDeleteBssParams *del_bss_params;
|
||||
struct del_bss_param *del_bss_params;
|
||||
tDeleteStaParams *del_sta_params;
|
||||
tLinkStateParams *set_link_params;
|
||||
tAddStaParams *add_sta_params;
|
||||
|
|
@ -2659,7 +2659,7 @@ wma_roam_update_vdev(tp_wma_handle wma,
|
|||
qdf_mem_zero(set_link_params, sizeof(*set_link_params));
|
||||
qdf_mem_zero(add_sta_params, sizeof(*add_sta_params));
|
||||
|
||||
del_bss_params->smesessionId = vdev_id;
|
||||
del_bss_params->vdev_id = vdev_id;
|
||||
del_sta_params->smesessionId = vdev_id;
|
||||
qdf_mem_copy(del_bss_params->bssid, wma->interfaces[vdev_id].bssid,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
|
|
|
|||
|
|
@ -4196,8 +4196,8 @@ wma_mlme_vdev_notify_down_complete(struct vdev_mlme_obj *vdev_mlme,
|
|||
}
|
||||
|
||||
if (req->msg_type == WMA_DELETE_BSS_HO_FAIL_REQ) {
|
||||
tpDeleteBssParams params =
|
||||
(tpDeleteBssParams)req->user_data;
|
||||
struct del_bss_param *params =
|
||||
(struct del_bss_param *)req->user_data;
|
||||
params->status = QDF_STATUS_SUCCESS;
|
||||
wma_send_msg_high_priority(wma, WMA_DELETE_BSS_HO_FAIL_RSP,
|
||||
(void *)params, 0);
|
||||
|
|
|
|||
Loading…
Reference in a new issue