qcacld-3.0: Retrieve information from the object manager vdev

sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.

Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
This commit is contained in:
Arun Kumar Khandavalli 2019-09-27 12:22:11 +05:30 • committed by nshrivas
commit c13afcd9da
4 changed files with 25 additions and 24 deletions

View file

@ -4487,8 +4487,6 @@ static int hdd_set_sme_session_param(struct hdd_adapter *adapter,
csr_roam_complete_cb callback,
void *callback_ctx)
{
session_param->vdev_id = adapter->vdev_id;
session_param->self_mac_addr = (uint8_t *)&adapter->mac_addr;
session_param->session_close_cb = hdd_sme_close_session_callback;
session_param->callback = callback;
session_param->callback_ctx = callback_ctx;

View file

@ -215,8 +215,6 @@ struct sme_5g_band_pref_params {
* @callback: callback to be invoked for roaming events
* @vdev: pointer to vdev object
* @callback_ctx: user-supplied context to be passed back on roaming events
* @self_mac_addr: Self mac address
* @vdev_id: vdev id
*/
struct sme_session_params {
csr_session_open_cb session_open_cb;
@ -224,8 +222,6 @@ struct sme_session_params {
csr_roam_complete_cb callback;
struct wlan_objmgr_vdev *vdev;
void *callback_ctx;
uint8_t *self_mac_addr;
uint8_t vdev_id;
};
#define MAX_CANDIDATE_INFO 10

View file

@ -4514,11 +4514,14 @@ QDF_STATUS sme_create_vdev(mac_handle_t mac_handle,
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
struct cdp_pdev *pdev;
ol_txrx_peer_handle peer;
uint8_t peer_id;
u8 peer_id, vdev_id;
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
u8 *mac_addr;
sme_debug("vdev_id %d addr:%pM", params->vdev_id,
params->self_mac_addr);
vdev_id = wlan_vdev_get_id(params->vdev);
mac_addr = wlan_vdev_mlme_get_macaddr(params->vdev);
sme_debug("vdev_id %d addr:%pM", vdev_id, mac_addr);
pdev = cds_get_context(QDF_MODULE_ID_TXRX);
@ -4531,7 +4534,8 @@ QDF_STATUS sme_create_vdev(mac_handle_t mac_handle,
if (QDF_IS_STATUS_ERROR(status))
return status;
peer = cdp_peer_find_by_addr(soc, pdev, params->self_mac_addr,
peer = cdp_peer_find_by_addr(soc, pdev,
mac_addr,
&peer_id);
if (peer) {
sme_err("Peer=%d exist with same MAC", peer_id);
@ -4544,7 +4548,7 @@ QDF_STATUS sme_create_vdev(mac_handle_t mac_handle,
sme_release_global_lock(&mac_ctx->sme);
MTRACE(qdf_trace(QDF_MODULE_ID_SME, TRACE_CODE_SME_RX_HDD_OPEN_SESSION,
params->vdev_id, 0));
vdev_id, 0));
return status;
}

View file

@ -17194,6 +17194,8 @@ QDF_STATUS csr_create_vdev(struct mac_context *mac_ctx,
struct mlme_vht_capabilities_info *vht_cap_info;
struct vdev_mlme_obj *vdev_mlme;
enum QDF_OPMODE op_mode;
u8 vdev_id;
struct qdf_mac_addr *mac_addr;
if (!(mac_ctx->mlme_cfg)) {
sme_err("invalid mlme cfg");
@ -17207,6 +17209,10 @@ QDF_STATUS csr_create_vdev(struct mac_context *mac_ctx,
return QDF_STATUS_E_FAILURE;
}
vdev_id = wlan_vdev_get_id(session_param->vdev);
mac_addr = (struct qdf_mac_addr *)
wlan_vdev_mlme_get_macaddr(session_param->vdev);
op_mode = wlan_vdev_mlme_get_opmode(vdev);
csr_get_vdev_type_nss(mac_ctx, op_mode,
&vdev_mlme->proto.generic.nss_2g,
@ -17221,33 +17227,30 @@ QDF_STATUS csr_create_vdev(struct mac_context *mac_ctx,
}
/* check to see if the mac address already belongs to a session */
status = csr_roam_get_session_id_from_bssid(mac_ctx,
(struct qdf_mac_addr *)session_param->self_mac_addr,
&existing_session_id);
status = csr_roam_get_session_id_from_bssid(mac_ctx, mac_addr,
&existing_session_id);
if (QDF_IS_STATUS_SUCCESS(status)) {
sme_err("Session %d exists with mac address " QDF_MAC_ADDR_STR,
sme_err("Session %d exists with mac address %pM",
existing_session_id,
QDF_MAC_ADDR_ARRAY(session_param->self_mac_addr));
mac_addr);
return QDF_STATUS_E_FAILURE;
}
/* attempt to retrieve session for Id */
session = CSR_GET_SESSION(mac_ctx, session_param->vdev_id);
session = CSR_GET_SESSION(mac_ctx, vdev_id);
if (!session) {
sme_err("Session does not exist for interface %d",
session_param->vdev_id);
sme_err("Session does not exist for interface %d", vdev_id);
return QDF_STATUS_E_FAILURE;
}
/* check to see if the session is already active */
if (session->sessionActive) {
sme_err("Cannot re-open active session with Id %d",
session_param->vdev_id);
sme_err("Cannot re-open active session with Id %d", vdev_id);
return QDF_STATUS_E_FAILURE;
}
session->sessionActive = true;
session->sessionId = session_param->vdev_id;
session->sessionId = vdev_id;
/* Initialize FT related data structures only in STA mode */
sme_ft_open(MAC_HANDLE(mac_ctx), session->sessionId);
@ -17256,7 +17259,7 @@ QDF_STATUS csr_create_vdev(struct mac_context *mac_ctx,
session->callback = session_param->callback;
session->pContext = session_param->callback_ctx;
qdf_mem_copy(&session->self_mac_addr, session_param->self_mac_addr,
qdf_mem_copy(&session->self_mac_addr, mac_addr,
sizeof(struct qdf_mac_addr));
status = qdf_mc_timer_init(&session->hTimerRoaming,
QDF_TIMER_TYPE_SW,
@ -17318,7 +17321,7 @@ QDF_STATUS csr_create_vdev(struct mac_context *mac_ctx,
status = mlme_vdev_create_send(vdev);
if (QDF_IS_STATUS_ERROR(status)) {
csr_cleanup_session(mac_ctx, wlan_vdev_get_id(vdev));
csr_cleanup_session(mac_ctx, vdev_id);
return status;
}