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:
Abhishek Ambure 2019-08-21 16:30:53 +05:30 • committed by nshrivas
commit 2bd960b047
17 changed files with 129 additions and 144 deletions

View file

@ -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);

View file

@ -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;
}

View file

@ -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);

View file

@ -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;
}
}

View file

@ -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);

View file

@ -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);
}

View file

@ -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);

View file

@ -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);

View file

@ -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,

View file

@ -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;
}

View file

@ -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)
{
}

View file

@ -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,

View file

@ -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);

View file

@ -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:

View file

@ -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,

View file

@ -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);

View file

@ -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);