From 8088c7216e53a3633bce19d24a09fa9783d42f75 Mon Sep 17 00:00:00 2001 From: Darian Leung Date: Sat, 2 Sep 2023 02:27:09 +0800 Subject: [PATCH] fix(freertos): Fixed bug with prvENTER/EXIT_CRITICAL_OR_MASK_ISR() macro Fixed an undiscovered bug with prvENTER_CRITICAL_OR_MASK_ISR() and prvEXIT_CRITICAL_OR_MASK_ISR() where the `uxInterruptStatus` argument was not used. However, all calls of this macro provide a local `uxSavedInterruptStatus` variable, leading to this bug being hidden. --- components/freertos/FreeRTOS-Kernel/include/freertos/task.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/freertos/FreeRTOS-Kernel/include/freertos/task.h b/components/freertos/FreeRTOS-Kernel/include/freertos/task.h index 2c016eb596..a50fb78d07 100644 --- a/components/freertos/FreeRTOS-Kernel/include/freertos/task.h +++ b/components/freertos/FreeRTOS-Kernel/include/freertos/task.h @@ -3458,10 +3458,10 @@ BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp ) PRIVILEGED_FUNCTION; #define prvENTER_CRITICAL_OR_SUSPEND_ALL( x ) ( { vTaskSuspendAll(); ( void ) ( x ); } ) #define prvEXIT_CRITICAL_OR_RESUME_ALL( x ) xTaskResumeAll() #define prvENTER_CRITICAL_OR_MASK_ISR( pxLock, uxInterruptStatus ) \ - ( uxSavedInterruptStatus ) = portSET_INTERRUPT_MASK_FROM_ISR(); \ + ( uxInterruptStatus ) = portSET_INTERRUPT_MASK_FROM_ISR(); \ ( void ) ( pxLock ); #define prvEXIT_CRITICAL_OR_UNMASK_ISR( pxLock, uxInterruptStatus ) \ - portCLEAR_INTERRUPT_MASK_FROM_ISR( ( uxSavedInterruptStatus ) ); \ + portCLEAR_INTERRUPT_MASK_FROM_ISR( ( uxInterruptStatus ) ); \ ( void ) ( pxLock ); #endif /* configNUM_CORES > 1 */