qcacld-3.0: Tdls avoid peer access after peer deletion
Currently, peer can be accessed after deletion in hdd because cdp_clear_peer called via tdls_process_del_peer_rsp tries to remove peer from physical device after deletion of peer in datapath. Fix is to remove cdp_clear_peer from hdd as it is handled by cdp_peer_delete. Change-Id: Ibdeb9a2a8dcf3318d66a48b9e9c7ca4d5cd74cb3 CRs-Fixed: 2663555
This commit is contained in:
@@ -1529,17 +1529,8 @@ QDF_STATUS tdls_process_del_peer_rsp(struct tdls_del_sta_rsp *rsp)
|
||||
|
||||
id = wlan_vdev_get_id(vdev);
|
||||
|
||||
if (TDLS_IS_LINK_CONNECTED(curr_peer)) {
|
||||
soc_obj->tdls_dereg_peer(
|
||||
soc_obj->tdls_peer_context,
|
||||
id, &curr_peer->peer_mac);
|
||||
if (TDLS_IS_LINK_CONNECTED(curr_peer))
|
||||
tdls_decrement_peer_count(soc_obj);
|
||||
} else if (TDLS_LINK_CONNECTING ==
|
||||
curr_peer->link_status) {
|
||||
soc_obj->tdls_dereg_peer(
|
||||
soc_obj->tdls_peer_context,
|
||||
id, &curr_peer->peer_mac);
|
||||
}
|
||||
}
|
||||
tdls_reset_peer(vdev_obj, macaddr);
|
||||
conn_rec[sta_idx].valid_entry = false;
|
||||
|
@@ -1294,11 +1294,6 @@ void tdls_disable_offchan_and_teardown_links(
|
||||
*/
|
||||
tdls_reset_peer(tdls_vdev, curr_peer->peer_mac.bytes);
|
||||
|
||||
if (tdls_soc->tdls_dereg_peer)
|
||||
tdls_soc->tdls_dereg_peer(
|
||||
tdls_soc->tdls_peer_context,
|
||||
wlan_vdev_get_id(vdev),
|
||||
&curr_peer->peer_mac);
|
||||
tdls_decrement_peer_count(tdls_soc);
|
||||
tdls_soc->tdls_conn_info[staidx].valid_entry = false;
|
||||
tdls_soc->tdls_conn_info[staidx].session_id = 255;
|
||||
|
@@ -514,11 +514,6 @@ static QDF_STATUS tdls_process_reset_all_peers(struct wlan_objmgr_vdev *vdev)
|
||||
|
||||
tdls_reset_peer(tdls_vdev, curr_peer->peer_mac.bytes);
|
||||
|
||||
if (tdls_soc->tdls_dereg_peer)
|
||||
tdls_soc->tdls_dereg_peer(
|
||||
tdls_soc->tdls_peer_context,
|
||||
wlan_vdev_get_id(vdev),
|
||||
&curr_peer->peer_mac);
|
||||
tdls_decrement_peer_count(tdls_soc);
|
||||
tdls_soc->tdls_conn_info[staidx].valid_entry = false;
|
||||
tdls_soc->tdls_conn_info[staidx].session_id = 255;
|
||||
|
@@ -172,7 +172,6 @@ struct tdls_set_state_info {
|
||||
* @tdls_evt_cb_data: tdls event user data
|
||||
* @tdls_peer_context: userdata for register/deregister TDLS peer
|
||||
* @tdls_reg_peer: register tdls peer with datapath
|
||||
* @tdls_dereg_peer: deregister tdls peer from datapath
|
||||
* @tx_q_ack: queue for tx frames waiting for ack
|
||||
* @tdls_con_cap: tdls concurrency support
|
||||
* @tdls_send_mgmt_req: store eWNI_SME_TDLS_SEND_MGMT_REQ value
|
||||
@@ -215,7 +214,6 @@ struct tdls_soc_priv_obj {
|
||||
void *tdls_evt_cb_data;
|
||||
void *tdls_peer_context;
|
||||
tdls_register_peer_callback tdls_reg_peer;
|
||||
tdls_deregister_peer_callback tdls_dereg_peer;
|
||||
tdls_dp_vdev_update_flags_callback tdls_dp_vdev_update;
|
||||
qdf_list_t tx_q_ack;
|
||||
enum tdls_conc_cap tdls_con_cap;
|
||||
|
@@ -650,7 +650,6 @@ typedef void (*tdls_vdev_deinit_cb)(struct wlan_objmgr_vdev *vdev);
|
||||
* @tdls_evt_cb_data: tdls event data
|
||||
* @tdls_peer_context: userdata for register/deregister TDLS peer
|
||||
* @tdls_reg_peer: register tdls peer with datapath
|
||||
* @tdls_dereg_peer: deregister tdls peer from datapath
|
||||
* @tdls_dp_vdev_update: update vdev flags in datapath
|
||||
* @tdls_osif_init_cb: callback to initialize the tdls priv
|
||||
* @tdls_osif_deinit_cb: callback to deinitialize the tdls priv
|
||||
@@ -671,7 +670,6 @@ struct tdls_start_params {
|
||||
void *tdls_evt_cb_data;
|
||||
void *tdls_peer_context;
|
||||
tdls_register_peer_callback tdls_reg_peer;
|
||||
tdls_deregister_peer_callback tdls_dereg_peer;
|
||||
tdls_dp_vdev_update_flags_callback tdls_dp_vdev_update;
|
||||
tdls_vdev_init_cb tdls_osif_init_cb;
|
||||
tdls_vdev_deinit_cb tdls_osif_deinit_cb;
|
||||
|
@@ -298,7 +298,6 @@ QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
/* Save callbacks to register/deregister TDLS sta with datapath */
|
||||
soc_obj->tdls_reg_peer = req->tdls_reg_peer;
|
||||
soc_obj->tdls_dereg_peer = req->tdls_dereg_peer;
|
||||
soc_obj->tdls_peer_context = req->tdls_peer_context;
|
||||
|
||||
/* Save legacy PE/WMA commands in TDLS soc object */
|
||||
|
مرجع در شماره جدید
Block a user