From 378a5b159a8a2007eaeefbc4197963228d7add9f Mon Sep 17 00:00:00 2001 From: Sachin Parekh Date: Mon, 25 Mar 2019 16:09:55 +0530 Subject: [PATCH] intr_alloc: port*_CRITICAL vanilla FreeRTOS compliance Signed-off-by: Sachin Parekh --- components/esp32/intr_alloc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/components/esp32/intr_alloc.c b/components/esp32/intr_alloc.c index 3260ca809..d4726499f 100644 --- a/components/esp32/intr_alloc.c +++ b/components/esp32/intr_alloc.c @@ -494,7 +494,7 @@ static void IRAM_ATTR shared_intr_isr(void *arg) { vector_desc_t *vd=(vector_desc_t*)arg; shared_vector_desc_t *sh_vec=vd->shared_vec_info; - portENTER_CRITICAL(&spinlock); + portENTER_CRITICAL_ISR(&spinlock); while(sh_vec) { if (!sh_vec->disabled) { if ((sh_vec->statusreg == NULL) || (*sh_vec->statusreg & sh_vec->statusmask)) { @@ -512,7 +512,7 @@ static void IRAM_ATTR shared_intr_isr(void *arg) } sh_vec=sh_vec->next; } - portEXIT_CRITICAL(&spinlock); + portEXIT_CRITICAL_ISR(&spinlock); } #if CONFIG_SYSVIEW_ENABLE @@ -520,7 +520,7 @@ static void IRAM_ATTR shared_intr_isr(void *arg) static void IRAM_ATTR non_shared_intr_isr(void *arg) { non_shared_isr_arg_t *ns_isr_arg=(non_shared_isr_arg_t*)arg; - portENTER_CRITICAL(&spinlock); + portENTER_CRITICAL_ISR(&spinlock); traceISR_ENTER(ns_isr_arg->source+ETS_INTERNAL_INTR_SOURCE_OFF); // FIXME: can we call ISR and check port_switch_flag after releasing spinlock? // when CONFIG_SYSVIEW_ENABLE = 0 ISRs for non-shared IRQs are called without spinlock @@ -529,7 +529,7 @@ static void IRAM_ATTR non_shared_intr_isr(void *arg) if (!port_switch_flag[xPortGetCoreID()]) { traceISR_EXIT(); } - portEXIT_CRITICAL(&spinlock); + portEXIT_CRITICAL_ISR(&spinlock); } #endif @@ -794,7 +794,7 @@ int esp_intr_get_cpu(intr_handle_t handle) esp_err_t IRAM_ATTR esp_intr_enable(intr_handle_t handle) { if (!handle) return ESP_ERR_INVALID_ARG; - portENTER_CRITICAL(&spinlock); + portENTER_CRITICAL_SAFE(&spinlock); int source; if (handle->shared_vector_desc) { handle->shared_vector_desc->disabled=0; @@ -810,14 +810,14 @@ esp_err_t IRAM_ATTR esp_intr_enable(intr_handle_t handle) if (handle->vector_desc->cpu!=xPortGetCoreID()) return ESP_ERR_INVALID_ARG; //Can only enable these ints on this cpu ESP_INTR_ENABLE(handle->vector_desc->intno); } - portEXIT_CRITICAL(&spinlock); + portEXIT_CRITICAL_SAFE(&spinlock); return ESP_OK; } esp_err_t IRAM_ATTR esp_intr_disable(intr_handle_t handle) { if (!handle) return ESP_ERR_INVALID_ARG; - portENTER_CRITICAL(&spinlock); + portENTER_CRITICAL_SAFE(&spinlock); int source; bool disabled = 1; if (handle->shared_vector_desc) { @@ -850,7 +850,7 @@ esp_err_t IRAM_ATTR esp_intr_disable(intr_handle_t handle) } ESP_INTR_DISABLE(handle->vector_desc->intno); } - portEXIT_CRITICAL(&spinlock); + portEXIT_CRITICAL_SAFE(&spinlock); return ESP_OK; }