From b3c37911526ba2643c5eb074c355c182218dea28 Mon Sep 17 00:00:00 2001 From: Erhan Kurubas Date: Mon, 23 Aug 2021 17:17:19 +0300 Subject: [PATCH] esp_ipc: fix race condition in ipc task --- components/esp_ipc/src/esp_ipc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/esp_ipc/src/esp_ipc.c b/components/esp_ipc/src/esp_ipc.c index 9c82bd09bf..2b31d09770 100644 --- a/components/esp_ipc/src/esp_ipc.c +++ b/components/esp_ipc/src/esp_ipc.c @@ -78,7 +78,6 @@ static void IRAM_ATTR ipc_task(void* arg) if (s_ipc_wait[cpuid] == IPC_WAIT_FOR_END) { xSemaphoreGive(s_ipc_ack[cpuid]); } - s_func[cpuid] = NULL; } } @@ -149,6 +148,7 @@ static esp_err_t esp_ipc_call_and_wait(uint32_t cpu_id, esp_ipc_func_t func, voi s_ipc_wait[cpu_id] = wait_for; xSemaphoreGive(s_ipc_sem[cpu_id]); xSemaphoreTake(s_ipc_ack[cpu_id], portMAX_DELAY); + s_func[cpu_id] = NULL; #ifdef CONFIG_ESP_IPC_USES_CALLERS_PRIORITY xSemaphoreGive(s_ipc_mutex[cpu_id]); #else