|
@@ -298,7 +298,7 @@ static QDF_STATUS p2p_execute_cancel_roc_req(
|
|
|
p2p_debug("p2p execute cancel roc req");
|
|
|
|
|
|
roc_ctx->roc_state = ROC_STATE_CANCEL_IN_PROG;
|
|
|
- qdf_event_reset(&p2p_soc_obj->cancel_roc_done);
|
|
|
+
|
|
|
status = qdf_mc_timer_stop_sync(&roc_ctx->roc_timer);
|
|
|
if (status != QDF_STATUS_SUCCESS)
|
|
|
p2p_err("Failed to stop roc timer, roc %pK", roc_ctx);
|
|
@@ -310,7 +310,6 @@ static QDF_STATUS p2p_execute_cancel_roc_req(
|
|
|
qdf_mc_timer_destroy(&roc_ctx->roc_timer);
|
|
|
p2p_mgmt_rx_ops(p2p_soc_obj->soc, false);
|
|
|
p2p_destroy_roc_ctx(roc_ctx, true, true);
|
|
|
- qdf_event_set(&p2p_soc_obj->cancel_roc_done);
|
|
|
return status;
|
|
|
}
|
|
|
|
|
@@ -543,7 +542,7 @@ static QDF_STATUS p2p_process_scan_complete_evt(
|
|
|
ROC_EVENT_COMPLETED);
|
|
|
|
|
|
p2p_destroy_roc_ctx(roc_ctx, false, true);
|
|
|
- qdf_event_set(&p2p_soc_obj->cancel_roc_done);
|
|
|
+ qdf_event_set(&p2p_soc_obj->cleanup_roc_done);
|
|
|
|
|
|
size = qdf_list_size(&p2p_soc_obj->roc_q);
|
|
|
|
|
@@ -742,6 +741,7 @@ QDF_STATUS p2p_process_cleanup_roc_queue(
|
|
|
struct p2p_cleanup_param *param)
|
|
|
{
|
|
|
uint32_t vdev_id;
|
|
|
+ uint8_t count = 0;
|
|
|
QDF_STATUS status, ret;
|
|
|
struct p2p_roc_context *roc_ctx;
|
|
|
qdf_list_node_t *p_node;
|
|
@@ -805,14 +805,13 @@ QDF_STATUS p2p_process_cleanup_roc_queue(
|
|
|
ROC_STATE_CANCEL_IN_PROG)
|
|
|
p2p_execute_cancel_roc_req(roc_ctx);
|
|
|
|
|
|
- ret = qdf_wait_single_event(
|
|
|
- &p2p_soc_obj->cancel_roc_done,
|
|
|
- P2P_WAIT_CANCEL_ROC);
|
|
|
- p2p_debug("RoC cancellation done, return:%d", ret);
|
|
|
+ count++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- qdf_event_set(&p2p_soc_obj->cleanup_roc_done);
|
|
|
+ p2p_debug("count %d", count);
|
|
|
+ if (!count)
|
|
|
+ qdf_event_set(&p2p_soc_obj->cleanup_roc_done);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|