From 64469affcdff9bbc9f09f7817d5ef12daf4ac03e Mon Sep 17 00:00:00 2001 From: Darian Leung Date: Tue, 24 May 2022 19:01:14 +0800 Subject: [PATCH] freertos: Fix TLSP deletion callback log Currently, portCLEAN_UP_TCB() is called in a critical section. This commit updates vPortTLSPointersDelCb() to use an EARLY log to prevent a crash. --- components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/port.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/port.c b/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/port.c index 73c0840aaa..1e21f7cf3c 100644 --- a/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/port.c +++ b/components/freertos/FreeRTOS-Kernel-SMP/portable/xtensa/port.c @@ -600,7 +600,8 @@ void vPortTLSPointersDelCb( void * pxTCB ) { /* In case the TLSP deletion callback has been overwritten by a TLS pointer, gracefully abort. */ if ( !esp_ptr_executable( pvThreadLocalStoragePointersDelCallback[ x ] ) ) { - ESP_LOGE("FreeRTOS", "Fatal error: TLSP deletion callback at index %d overwritten with non-excutable pointer %p", x, pvThreadLocalStoragePointersDelCallback[ x ]); + // We call EARLY log here as currently portCLEAN_UP_TCB() is called in a critical section + ESP_EARLY_LOGE("FreeRTOS", "Fatal error: TLSP deletion callback at index %d overwritten with non-excutable pointer %p", x, pvThreadLocalStoragePointersDelCallback[ x ]); abort(); }