diff --git a/components/nan/core/src/nan_main.c b/components/nan/core/src/nan_main.c index 326b6ead44..4da4438353 100644 --- a/components/nan/core/src/nan_main.c +++ b/components/nan/core/src/nan_main.c @@ -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);