diff --git a/components/bt/bt.c b/components/bt/bt.c index 71b2e28b7..b90ccc8ea 100644 --- a/components/bt/bt.c +++ b/components/bt/bt.c @@ -254,12 +254,20 @@ bool IRAM_ATTR btdm_queue_generic_deregister(btdm_queue_item_t *queue) static void IRAM_ATTR interrupt_disable(void) { - portENTER_CRITICAL(&global_int_mux); + if (xPortInIsrContext()) { + portENTER_CRITICAL_ISR(&global_int_mux); + } else { + portENTER_CRITICAL(&global_int_mux); + } } static void IRAM_ATTR interrupt_restore(void) { - portEXIT_CRITICAL(&global_int_mux); + if (xPortInIsrContext()) { + portEXIT_CRITICAL_ISR(&global_int_mux); + } else { + portEXIT_CRITICAL(&global_int_mux); + } } static void IRAM_ATTR task_yield_from_isr(void)