qcacmn: Delete connection in progress tdls peers
TDLS peer has to be deleted before sending the TDLS disable command to FW, otherwise FW may assert due to the invalid sequence of peer delete and TDLS set state command. So Delete TDLS peers for those the connection is in progress along with the active TDLS peers before disabling the TDLS. Change-Id: Ic52c44dea947095cfe5e4dfe36eec271b1f46867 CRs-Fixed: 2340759
This commit is contained in:

committad av
nshrivas

förälder
3515e05cee
incheckning
223e95934e
@@ -1185,6 +1185,7 @@ void tdls_disable_offchan_and_teardown_links(
|
|||||||
struct tdls_soc_priv_obj *tdls_soc;
|
struct tdls_soc_priv_obj *tdls_soc;
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
|
bool tdls_in_progress = false;
|
||||||
|
|
||||||
status = tdls_get_vdev_objects(vdev, &tdls_vdev, &tdls_soc);
|
status = tdls_get_vdev_objects(vdev, &tdls_vdev, &tdls_soc);
|
||||||
if (QDF_STATUS_SUCCESS != status) {
|
if (QDF_STATUS_SUCCESS != status) {
|
||||||
@@ -1199,9 +1200,11 @@ void tdls_disable_offchan_and_teardown_links(
|
|||||||
}
|
}
|
||||||
|
|
||||||
connected_tdls_peers = tdls_soc->connected_peer_count;
|
connected_tdls_peers = tdls_soc->connected_peer_count;
|
||||||
|
if (tdls_is_progress(tdls_vdev, NULL, 0))
|
||||||
|
tdls_in_progress = true;
|
||||||
|
|
||||||
if (!connected_tdls_peers) {
|
if (!(connected_tdls_peers || tdls_in_progress)) {
|
||||||
tdls_notice("No TDLS connected peers to delete");
|
tdls_notice("No TDLS connected/progress peers to delete");
|
||||||
vdev_id = vdev->vdev_objmgr.vdev_id;
|
vdev_id = vdev->vdev_objmgr.vdev_id;
|
||||||
if (tdls_soc->set_state_info.set_state_cnt > 0) {
|
if (tdls_soc->set_state_info.set_state_cnt > 0) {
|
||||||
tdls_debug("Disable the tdls in FW as second interface is coming up");
|
tdls_debug("Disable the tdls in FW as second interface is coming up");
|
||||||
|
Referens i nytt ärende
Block a user