mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 09:14:18 -04:00
qcacld-3.0: Fix error handling in peer creation
Return error instead of QDF_BUG(0) in ol_txrx_peer_attach() when it times out on duplicate peer detection. Peer unmap events from firmware may take more than 500 ms timeout observed by this routine. wma_create_peer() should return error status on failure to create peer. CRs-Fixed: 2004665 Change-Id: I8368c6320139f97584bd1647f1806a695d4a5929
This commit is contained in:
parent
7add0f66d1
commit
be72e80caa
2 changed files with 17 additions and 3 deletions
|
|
@ -2455,8 +2455,14 @@ ol_txrx_peer_attach(struct cdp_vdev *pvdev, uint8_t *peer_mac_addr)
|
|||
if (cds_is_self_recovery_enabled())
|
||||
cds_trigger_recovery(false);
|
||||
else
|
||||
/* Added for debugging only */
|
||||
QDF_BUG(0);
|
||||
|
||||
/*
|
||||
* Add equivalent of following line when it
|
||||
* becomes available.
|
||||
* wma_peer_debug_dump();
|
||||
*/
|
||||
QDF_ASSERT(0);
|
||||
|
||||
vdev->wait_on_peer_id = OL_TXRX_INVALID_LOCAL_PEER_ID;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1177,6 +1177,7 @@ void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
|||
(params->state != eSIR_LINK_DOWN_STATE)) {
|
||||
WMA_LOGD("%s: unsupported link state %d",
|
||||
__func__, params->state);
|
||||
params->status = false;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
@ -1184,6 +1185,7 @@ void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
|||
|
||||
if (NULL == pdev) {
|
||||
WMA_LOGE("%s: Unable to get TXRX context", __func__);
|
||||
params->status = false;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
@ -1191,11 +1193,13 @@ void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
|||
if (!vdev) {
|
||||
WMA_LOGP("%s: vdev not found for addr: %pM",
|
||||
__func__, params->selfMacAddr);
|
||||
params->status = false;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (wma_is_vdev_in_ap_mode(wma, vdev_id)) {
|
||||
WMA_LOGD("%s: Ignoring set link req in ap mode", __func__);
|
||||
params->status = false;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
@ -1205,8 +1209,10 @@ void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
|||
status = wma_create_peer(wma, pdev, vdev, params->bssid,
|
||||
WMI_PEER_TYPE_DEFAULT, vdev_id,
|
||||
roam_synch_in_progress);
|
||||
if (status != QDF_STATUS_SUCCESS)
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
WMA_LOGE("%s: Unable to create peer", __func__);
|
||||
params->status = false;
|
||||
}
|
||||
if (roam_synch_in_progress)
|
||||
return;
|
||||
} else {
|
||||
|
|
@ -1222,12 +1228,14 @@ void wma_set_linkstate(tp_wma_handle wma, tpLinkStateParams params)
|
|||
if (!msg) {
|
||||
WMA_LOGP(FL("Failed to fill vdev request for vdev_id %d"),
|
||||
vdev_id);
|
||||
params->status = false;
|
||||
status = QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
wma_vdev_set_pause_bit(vdev_id, PAUSE_TYPE_HOST);
|
||||
if (wma_send_vdev_stop_to_fw(wma, vdev_id)) {
|
||||
WMA_LOGP("%s: %d Failed to send vdev stop",
|
||||
__func__, __LINE__);
|
||||
params->status = false;
|
||||
} else {
|
||||
WMA_LOGP("%s: %d vdev stop sent vdev %d",
|
||||
__func__, __LINE__, vdev_id);
|
||||
|
|
|
|||
Loading…
Reference in a new issue