qcacld-3.0: Unblock wait for NDP_END indcation if req is a failure
When host driver sends NDP_END request to firmware, driver starts a wait-for-complete and waits for the NDP_END confirm event. It unblocks the wait upon getting successful NDP_END event from firmware. But firmware sends response with a failure status if the NDP is already gone and it doesn't send NDP_END event. NDP_END requester waits till the timeout(2 seconds) happens for the NDP_END confirm event from firmware in this case. Unblock the wait-for-complete in this case also to avoid the unnecessary wait. Change-Id: I779248455b07cd934ceaf2c23e79f3943aff5e41 CRs-Fixed: 2651663
This commit is contained in:

committed by
nshrivas

parent
5de60c69be
commit
491ae1e5f7
@@ -731,6 +731,7 @@ static QDF_STATUS nan_handle_ndp_end_rsp(
|
||||
{
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct nan_psoc_priv_obj *psoc_nan_obj;
|
||||
struct osif_request *request;
|
||||
|
||||
*vdev = rsp->vdev;
|
||||
psoc = wlan_vdev_get_psoc(rsp->vdev);
|
||||
@@ -745,6 +746,14 @@ static QDF_STATUS nan_handle_ndp_end_rsp(
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
/* Unblock the wait here if NDP_END request is a failure */
|
||||
if (rsp->status != 0) {
|
||||
request = osif_request_get(psoc_nan_obj->request_context);
|
||||
if (request) {
|
||||
osif_request_complete(request);
|
||||
osif_request_put(request);
|
||||
}
|
||||
}
|
||||
psoc_nan_obj->cb_obj.os_if_ndp_event_handler(psoc, rsp->vdev,
|
||||
NDP_END_RSP, rsp);
|
||||
|
||||
|
Reference in New Issue
Block a user