qcacmn: Remove vdev/peer locks for trivial APIs

Remove vdev/peer locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.

Change-Id: I9972d51dfd1a42bdedbfd0fd4e67af03d030a1f5
CRs-Fixed: 2060880
This commit is contained in:
Vivek 2017-06-21 08:21:58 +05:30 • committed by snandini
commit b02a649f89
43 changed files with 3 additions and 324 deletions

View file

@ -142,16 +142,13 @@ static QDF_STATUS tdls_pe_add_peer(struct tdls_add_peer_request *req)
addstareq->tdls_oper = TDLS_OPER_ADD;
addstareq->transaction_id = 0;
wlan_vdev_obj_lock(vdev);
addstareq->session_id = wlan_vdev_get_id(vdev);
peer = wlan_vdev_get_bsspeer(vdev);
if (!peer) {
wlan_vdev_obj_unlock(vdev);
tdls_err("bss peer is NULL");
status = QDF_STATUS_E_INVAL;
goto error;
}
wlan_vdev_obj_unlock(vdev);
status = wlan_objmgr_peer_try_get_ref(peer, WLAN_TDLS_NB_ID);
if (QDF_IS_STATUS_ERROR(status)) {
tdls_err("can't get bss peer");
@ -210,16 +207,13 @@ QDF_STATUS tdls_pe_del_peer(struct tdls_del_peer_request *req)
delstareq->transaction_id = 0;
wlan_vdev_obj_lock(vdev);
delstareq->session_id = wlan_vdev_get_id(vdev);
peer = wlan_vdev_get_bsspeer(vdev);
if (!peer) {
wlan_vdev_obj_unlock(vdev);
tdls_err("bss peer is NULL");
status = QDF_STATUS_E_INVAL;
goto error;
}
wlan_vdev_obj_unlock(vdev);
status = wlan_objmgr_peer_try_get_ref(peer, WLAN_TDLS_NB_ID);
if (QDF_IS_STATUS_ERROR(status)) {
tdls_err("can't get bss peer");
@ -281,16 +275,13 @@ static QDF_STATUS tdls_pe_update_peer(struct tdls_update_peer_request *req)
addstareq->tdls_oper = TDLS_OPER_UPDATE;
addstareq->transaction_id = 0;
wlan_vdev_obj_lock(vdev);
addstareq->session_id = wlan_vdev_get_id(vdev);
peer = wlan_vdev_get_bsspeer(vdev);
if (!peer) {
wlan_vdev_obj_unlock(vdev);
tdls_err("bss peer is NULL");
status = QDF_STATUS_E_INVAL;
goto error;
}
wlan_vdev_obj_unlock(vdev);
status = wlan_objmgr_peer_try_get_ref(peer, WLAN_TDLS_NB_ID);
if (QDF_IS_STATUS_ERROR(status)) {
tdls_err("can't get bss peer");
@ -1477,9 +1468,7 @@ QDF_STATUS tdls_process_del_peer_rsp(struct tdls_del_sta_rsp *rsp)
QDF_MAC_ADDR_ARRAY(macaddr),
curr_peer->link_status);
wlan_vdev_obj_lock(vdev);
id = wlan_vdev_get_id(vdev);
wlan_vdev_obj_unlock(vdev);
if (TDLS_IS_LINK_CONNECTED(curr_peer)) {
soc_obj->tdls_dereg_tl_peer(
@ -1573,14 +1562,13 @@ tdls_update_uapsd(struct wlan_objmgr_psoc *psoc, struct wlan_objmgr_vdev *vdev,
tdls_debug("No need to configure auto trigger:psb is 0");
return QDF_STATUS_SUCCESS;
}
wlan_vdev_obj_lock(vdev);
vdev_id = wlan_vdev_get_id(vdev);
bsspeer = wlan_vdev_get_bsspeer(vdev);
if (!bsspeer) {
wlan_vdev_obj_unlock(vdev);
tdls_err("bss peer is NULL");
return QDF_STATUS_E_FAILURE;
}
wlan_vdev_obj_lock(vdev);
qdf_mem_copy(macaddr,
wlan_peer_get_macaddr(bsspeer), QDF_MAC_ADDR_SIZE);
wlan_vdev_obj_unlock(vdev);
@ -1663,9 +1651,7 @@ QDF_STATUS tdls_process_enable_link(struct tdls_oper_request *req)
tdls_set_peer_link_status(peer, TDLS_LINK_CONNECTED,
TDLS_LINK_SUCCESS);
wlan_vdev_obj_lock(vdev);
id = wlan_vdev_get_id(vdev);
wlan_vdev_obj_unlock(vdev);
status = soc_obj->tdls_reg_tl_peer(soc_obj->tdls_tl_peer_data,
id, mac, peer->sta_id,
peer->signature, peer->qos);
@ -1744,9 +1730,7 @@ static QDF_STATUS tdls_config_force_peer(
QDF_MAC_ADDR_ARRAY(macaddr));
vdev = req->vdev;
wlan_vdev_obj_lock(vdev);
pdev = wlan_vdev_get_pdev(vdev);
wlan_vdev_obj_unlock(vdev);
vdev_obj = wlan_vdev_get_tdls_vdev_obj(vdev);
soc_obj = wlan_vdev_get_tdls_soc_obj(vdev);
if (!pdev || !vdev_obj || !soc_obj) {
@ -1784,9 +1768,7 @@ static QDF_STATUS tdls_config_force_peer(
/* Update the peer mac to firmware, so firmware could update the
* connection table
*/
wlan_vdev_obj_lock(vdev);
peer_update_param->vdev_id = wlan_vdev_get_id(vdev);
wlan_vdev_obj_unlock(vdev);
qdf_mem_copy(peer_update_param->peer_macaddr,
macaddr, QDF_MAC_ADDR_SIZE);
peer_update_param->peer_state = TDLS_PEER_ADD_MAC_ADDR;
@ -1951,9 +1933,7 @@ QDF_STATUS tdls_process_remove_force_peer(struct tdls_oper_request *req)
goto error;
}
wlan_vdev_obj_lock(vdev);
peer_update_param->vdev_id = wlan_vdev_get_id(vdev);
wlan_vdev_obj_unlock(vdev);
qdf_mem_copy(peer_update_param->peer_macaddr,
macaddr, QDF_MAC_ADDR_SIZE);
peer_update_param->peer_state = TDLS_PEER_REMOVE_MAC_ADDR;

View file

@ -32,18 +32,14 @@ bool tdls_is_vdev_connected(struct wlan_objmgr_vdev *vdev)
struct wlan_objmgr_peer *peer;
enum wlan_peer_state peer_state;
wlan_vdev_obj_lock(vdev);
peer = wlan_vdev_get_bsspeer(vdev);
wlan_vdev_obj_unlock(vdev);
if (!peer) {
tdls_err("peer is null");
return false;
}
wlan_peer_obj_lock(peer);
peer_state = wlan_peer_mlme_get_state(peer);
wlan_peer_obj_unlock(peer);
if (peer_state != WLAN_ASSOC_STATE) {
tdls_err("peer state: %d", peer_state);
@ -58,18 +54,14 @@ bool tdls_is_vdev_authenticated(struct wlan_objmgr_vdev *vdev)
struct wlan_objmgr_peer *peer;
bool is_authenticated = false;
wlan_vdev_obj_lock(vdev);
peer = wlan_vdev_get_bsspeer(vdev);
wlan_vdev_obj_unlock(vdev);
if (!peer) {
tdls_err("peer is null");
return false;
}
wlan_peer_obj_lock(peer);
is_authenticated = wlan_peer_mlme_get_auth_state(peer);
wlan_peer_obj_unlock(peer);
return is_authenticated;
}

View file

@ -430,9 +430,7 @@ QDF_STATUS tdls_get_vdev_objects(struct wlan_objmgr_vdev *vdev,
if (NULL == (*tdls_soc_obj))
return QDF_STATUS_E_FAILURE;
wlan_vdev_obj_lock(vdev);
device_mode = wlan_vdev_mlme_get_opmode(vdev);
wlan_vdev_obj_unlock(vdev);
if (device_mode != QDF_STA_MODE &&
device_mode != QDF_P2P_CLIENT_MODE)

View file

@ -375,9 +375,7 @@ wlan_vdev_get_tdls_soc_obj(struct wlan_objmgr_vdev *vdev)
return NULL;
}
wlan_vdev_obj_lock(vdev);
psoc = wlan_vdev_get_psoc(vdev);
wlan_vdev_obj_unlock(vdev);
if (!psoc) {
tdls_err("can't get psoc");
return NULL;
@ -427,11 +425,9 @@ wlan_vdev_get_tdls_vdev_obj(struct wlan_objmgr_vdev *vdev)
return NULL;
}
wlan_vdev_obj_lock(vdev);
vdev_obj = (struct tdls_vdev_priv_obj *)
wlan_objmgr_vdev_get_comp_private_obj(vdev,
WLAN_UMAC_COMP_TDLS);
wlan_vdev_obj_unlock(vdev);
return vdev_obj;
}

View file

@ -315,9 +315,7 @@ struct tdls_peer *tdls_is_progress(struct tdls_vdev_priv_obj *vdev_obj,
return NULL;
}
wlan_vdev_obj_lock(vdev_obj->vdev);
psoc = wlan_vdev_get_psoc(vdev_obj->vdev);
wlan_vdev_obj_unlock(vdev_obj->vdev);
if (!psoc) {
tdls_err("invalid psoc");
return NULL;
@ -395,10 +393,8 @@ static void tdls_determine_channel_opclass(struct tdls_soc_priv_obj *soc_obj,
if (!(TDLS_IS_OFF_CHANNEL_ENABLED(
soc_obj->tdls_configs.tdls_feature_flags)) ||
soc_obj->tdls_fw_off_chan_mode != ENABLE_CHANSWITCH) {
wlan_vdev_obj_lock(vdev_obj->vdev);
vdev_id = wlan_vdev_get_id(vdev_obj->vdev);
opmode = wlan_vdev_mlme_get_opmode(vdev_obj->vdev);
wlan_vdev_obj_unlock(vdev_obj->vdev);
*channel = policy_mgr_get_channel(soc_obj->soc,
opmode, &vdev_id);
@ -482,9 +478,7 @@ void tdls_extract_peer_state_param(struct tdls_peer_update_state *peer_param,
}
qdf_mem_zero(peer_param, sizeof(*peer_param));
wlan_vdev_obj_lock(vdev_obj->vdev);
peer_param->vdev_id = wlan_vdev_get_id(vdev_obj->vdev);
wlan_vdev_obj_unlock(vdev_obj->vdev);
qdf_mem_copy(peer_param->peer_macaddr,
peer->peer_mac.bytes, QDF_MAC_ADDR_SIZE);

View file

@ -244,21 +244,15 @@ QDF_STATUS tgt_tdls_mgmt_frame_process_rx_cb(
tdls_err("current tdls vdev is null, can't get vdev id");
return QDF_STATUS_E_FAILURE;
}
wlan_vdev_obj_lock(vdev);
vdev_id = wlan_vdev_get_id(vdev);
wlan_vdev_obj_unlock(vdev);
wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_SB_ID);
} else {
wlan_peer_obj_lock(peer);
vdev = wlan_peer_get_vdev(peer);
wlan_peer_obj_unlock(peer);
if (!vdev) {
tdls_err("vdev is NULL in peer, drop this frame");
return QDF_STATUS_E_FAILURE;
}
wlan_vdev_obj_lock(vdev);
vdev_id = wlan_vdev_get_id(vdev);
wlan_vdev_obj_unlock(vdev);
}
rx_mgmt_event = qdf_mem_malloc(sizeof(*rx_mgmt_event));