qcacld-3.0: Avoid recovery trigger while recovering

Currently, cds_trigger_recovery is unconditional. Instead, avoid
triggering recovery if recovery is already in progress.

Change-Id: I5c77048701930591e0e520e07275e6f8631108a0
CRs-Fixed: 2070845
Esse commit está contido em:
Dustin Brown
2017-07-10 11:48:40 -07:00
commit de Anjaneedevi Kapparapu
commit 100201ecca
9 arquivos alterados com 123 adições e 137 exclusões

Ver arquivo

@@ -2504,21 +2504,11 @@ ol_txrx_peer_attach(struct cdp_vdev *pvdev, uint8_t *peer_mac_addr)
rc = qdf_wait_single_event(&vdev->wait_delete_comp,
PEER_DELETION_TIMEOUT);
if (QDF_STATUS_SUCCESS != rc) {
ol_txrx_err(
"error waiting for peer(%d) deletion, status %d\n",
vdev->wait_on_peer_id, (int) rc);
if (cds_is_self_recovery_enabled())
cds_trigger_recovery(false);
else
/*
* Add equivalent of following line when it
* becomes available.
* wma_peer_debug_dump();
*/
QDF_ASSERT(0);
ol_txrx_err("error waiting for peer(%d) deletion, status %d\n",
vdev->wait_on_peer_id, (int) rc);
cds_trigger_recovery();
vdev->wait_on_peer_id = OL_TXRX_INVALID_LOCAL_PEER_ID;
return NULL;
}
}
@@ -3407,19 +3397,7 @@ static QDF_STATUS ol_txrx_clear_peer(struct cdp_pdev *ppdev, uint8_t sta_id)
void peer_unmap_timer_work_function(void *param)
{
WMA_LOGE("Enter: %s", __func__);
/*
* wma_peer_debug_dump() will be replaced with a new routine.
* Add the equivalent of wma_peer_debug_dump() when available.
*/
if (cds_is_self_recovery_enabled()) {
if (!cds_is_driver_recovering())
cds_trigger_recovery(false);
else
WMA_LOGE("%s: Recovery is in progress, ignore!",
__func__);
} else {
QDF_BUG(0);
}
cds_trigger_recovery();
}
/**