|
@@ -1,5 +1,5 @@
|
|
/*
|
|
/*
|
|
- * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
|
|
|
|
|
|
+ * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
|
|
*
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
@@ -102,6 +102,7 @@ QDF_STATUS qdf_event_set(qdf_event_t *event)
|
|
return QDF_STATUS_E_INVAL;
|
|
return QDF_STATUS_E_INVAL;
|
|
|
|
|
|
complete(&event->complete);
|
|
complete(&event->complete);
|
|
|
|
+ event->done = true;
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
@@ -134,6 +135,7 @@ QDF_STATUS qdf_event_reset(qdf_event_t *event)
|
|
return QDF_STATUS_E_INVAL;
|
|
return QDF_STATUS_E_INVAL;
|
|
|
|
|
|
/* (re)initialize event */
|
|
/* (re)initialize event */
|
|
|
|
+ event->done = false;
|
|
event->force_set = false;
|
|
event->force_set = false;
|
|
INIT_COMPLETION(event->complete);
|
|
INIT_COMPLETION(event->complete);
|
|
|
|
|
|
@@ -252,8 +254,10 @@ void qdf_complete_wait_events(void)
|
|
event_node = qdf_container_of(list_node,
|
|
event_node = qdf_container_of(list_node,
|
|
struct qdf_evt_node, node);
|
|
struct qdf_evt_node, node);
|
|
|
|
|
|
- event_node->pevent->force_set = true;
|
|
|
|
- qdf_event_set(event_node->pevent);
|
|
|
|
|
|
+ if (!event_node->pevent->done) {
|
|
|
|
+ event_node->pevent->force_set = true;
|
|
|
|
+ qdf_event_set(event_node->pevent);
|
|
|
|
+ }
|
|
|
|
|
|
status = qdf_list_peek_next(&qdf_wait_event_list,
|
|
status = qdf_list_peek_next(&qdf_wait_event_list,
|
|
&event_node->node, &list_node);
|
|
&event_node->node, &list_node);
|