mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
qcacmn: Remove TDLS mgmt tx command from active list
If bss peer is freed after posting TDLS mgmt request command to serialization component. Free the tdls mgmt req command from active list. Change-Id: I6bf2c3518dfc64052470375e4018e56abdcfcabb CRs-Fixed: 2333288
This commit is contained in:
parent
9ff61bb709
commit
20a776c863
3 changed files with 21 additions and 4 deletions
|
|
@ -97,7 +97,7 @@ static char *tdls_get_ser_cmd_str(enum wlan_serialization_cmd_type type)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
tdls_release_serialization_command(struct wlan_objmgr_vdev *vdev,
|
||||
enum wlan_serialization_cmd_type type)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -291,6 +291,19 @@ QDF_STATUS tdls_process_add_peer_rsp(struct tdls_add_sta_rsp *rsp);
|
|||
void tdls_reset_nss(struct tdls_soc_priv_obj *tdls_soc,
|
||||
uint8_t action_code);
|
||||
|
||||
/**
|
||||
* tdls_release_serialization_command() - TDLS wrapper to
|
||||
* relases serialization command.
|
||||
* @vdev: Object manager vdev
|
||||
* @type: command to release.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
|
||||
void
|
||||
tdls_release_serialization_command(struct wlan_objmgr_vdev *vdev,
|
||||
enum wlan_serialization_cmd_type type);
|
||||
|
||||
/**
|
||||
* tdls_set_cap() - set TDLS capability type
|
||||
* @tdls_vdev: tdls vdev object
|
||||
|
|
|
|||
|
|
@ -206,7 +206,6 @@ tdls_internal_send_mgmt_tx_done(struct tdls_action_frame_request *req,
|
|||
|
||||
indication.status = status;
|
||||
indication.vdev = req->vdev;
|
||||
|
||||
tdls_soc_obj = wlan_vdev_get_tdls_soc_obj(req->vdev);
|
||||
if (tdls_soc_obj && tdls_soc_obj->tdls_event_cb)
|
||||
tdls_soc_obj->tdls_event_cb(tdls_soc_obj->tdls_evt_cb_data,
|
||||
|
|
@ -272,8 +271,8 @@ static QDF_STATUS tdls_activate_send_mgmt_request(
|
|||
|
||||
peer = wlan_vdev_get_bsspeer(action_req->vdev);
|
||||
|
||||
if (QDF_STATUS_SUCCESS != wlan_objmgr_peer_try_get_ref(peer,
|
||||
WLAN_TDLS_SB_ID)) {
|
||||
status = wlan_objmgr_peer_try_get_ref(peer, WLAN_TDLS_SB_ID);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
qdf_mem_free(tdls_mgmt_req);
|
||||
goto release_mgmt_ref;
|
||||
}
|
||||
|
|
@ -315,6 +314,11 @@ release_mgmt_ref:
|
|||
|
||||
/*update tdls nss infornation based on action code */
|
||||
tdls_reset_nss(tdls_soc_obj, action_req->chk_frame->action_code);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
tdls_internal_send_mgmt_tx_done(action_req, status);
|
||||
tdls_release_serialization_command(action_req->vdev,
|
||||
WLAN_SER_CMD_TDLS_SEND_MGMT);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue