Quellcode durchsuchen

freertos: portCLEAN_UP_TCB should be performed before freeing tcb memory

Signed-off-by: Mahavir Jain <mahavir@espressif.com>
Mahavir Jain vor 7 Jahren
Ursprung
Commit
c65a08d2fb
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      components/freertos/tasks.c

+ 4 - 1
components/freertos/tasks.c

@@ -3878,6 +3878,10 @@ BaseType_t xTaskGetAffinity( TaskHandle_t xTask )
 
 	static void prvDeleteTCB( TCB_t *pxTCB )
 	{
+		/* This call is required for any port specific cleanup related to task.
+		It must be above the vPortFree() calls. */
+		portCLEAN_UP_TCB( pxTCB );
+
 		/* Free up the memory allocated by the scheduler for the task.  It is up
 		to the task to free any memory allocated at the application level. */
 		#if ( configUSE_NEWLIB_REENTRANT == 1 )
@@ -3920,7 +3924,6 @@ BaseType_t xTaskGetAffinity( TaskHandle_t xTask )
 				/* Neither the stack nor the TCB were allocated dynamically, so
 				nothing needs to be freed. */
 				configASSERT( pxTCB->ucStaticallyAllocated == tskSTATICALLY_ALLOCATED_STACK_AND_TCB	)
-				portCLEAN_UP_TCB( pxTCB );
 				mtCOVERAGE_TEST_MARKER();
 			}
 		}