From 3c09383fab25139ff6a1420a8a54048b7095910f Mon Sep 17 00:00:00 2001 From: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com> Date: Mon, 6 Mar 2023 15:15:38 +0530 Subject: Fix CBMC proof failures (#946) * Fix CBMC proof failures These were introduced in PR #620. Signed-off-by: Gaurav Aggarwal * Update manifest Signed-off-by: Gaurav Aggarwal --------- Signed-off-by: Gaurav Aggarwal --- FreeRTOS/Source | 2 +- ...e-volatile-qualifier-from-tasks-variables.patch | 24 +++++++++++----------- .../Task/TaskIncrementTick/Configurations.json | 2 +- .../proofs/Task/TaskResumeAll/Configurations.json | 2 +- manifest.yml | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/FreeRTOS/Source b/FreeRTOS/Source index bb6071e1d..ddd50d9a8 160000 --- a/FreeRTOS/Source +++ b/FreeRTOS/Source @@ -1 +1 @@ -Subproject commit bb6071e1df3168a64dc2ce79de8aa91b7995ba23 +Subproject commit ddd50d9a80fd80e2bca7e93d49baf5c71986cbbb diff --git a/FreeRTOS/Test/CBMC/patches/0005-Remove-volatile-qualifier-from-tasks-variables.patch b/FreeRTOS/Test/CBMC/patches/0005-Remove-volatile-qualifier-from-tasks-variables.patch index 3eadf82d9..847bc5673 100644 --- a/FreeRTOS/Test/CBMC/patches/0005-Remove-volatile-qualifier-from-tasks-variables.patch +++ b/FreeRTOS/Test/CBMC/patches/0005-Remove-volatile-qualifier-from-tasks-variables.patch @@ -41,21 +41,21 @@ Here, `uxPendedTicks` could return any value, making it impossible to unwind as a regular variable so that the loop can be unwound. diff --git a/FreeRTOS/Source/tasks.c b/FreeRTOS/Source/tasks.c -index c7be57cb2..9f76465d5 100644 +index 0e7a56c60..b29c19ea5 100644 --- a/FreeRTOS/Source/tasks.c +++ b/FreeRTOS/Source/tasks.c -@@ -343,8 +343,8 @@ PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL; - PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ]; /*< Prioritised ready tasks. */ - PRIVILEGED_DATA static List_t xDelayedTaskList1; /*< Delayed tasks. */ - PRIVILEGED_DATA static List_t xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ --PRIVILEGED_DATA static List_t * volatile pxDelayedTaskList; /*< Points to the delayed task list currently being used. */ --PRIVILEGED_DATA static List_t * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ -+PRIVILEGED_DATA static List_t * pxDelayedTaskList; /*< Points to the delayed task list currently being used. */ -+PRIVILEGED_DATA static List_t * pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ - PRIVILEGED_DATA static List_t xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready list when the scheduler is resumed. */ - +@@ -339,8 +339,8 @@ portDONT_DISCARD PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL; + PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ]; /**< Prioritised ready tasks. */ + PRIVILEGED_DATA static List_t xDelayedTaskList1; /**< Delayed tasks. */ + PRIVILEGED_DATA static List_t xDelayedTaskList2; /**< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ +-PRIVILEGED_DATA static List_t * volatile pxDelayedTaskList; /**< Points to the delayed task list currently being used. */ +-PRIVILEGED_DATA static List_t * volatile pxOverflowDelayedTaskList; /**< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ ++PRIVILEGED_DATA static List_t * pxDelayedTaskList; /**< Points to the delayed task list currently being used. */ ++PRIVILEGED_DATA static List_t * pxOverflowDelayedTaskList; /**< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ + PRIVILEGED_DATA static List_t xPendingReadyList; /**< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready list when the scheduler is resumed. */ + #if ( INCLUDE_vTaskDelete == 1 ) -@@ -371,7 +371,7 @@ PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks = ( UBaseType +@@ -367,7 +367,7 @@ PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks = ( UBaseType PRIVILEGED_DATA static volatile TickType_t xTickCount = ( TickType_t ) configINITIAL_TICK_COUNT; PRIVILEGED_DATA static volatile UBaseType_t uxTopReadyPriority = tskIDLE_PRIORITY; PRIVILEGED_DATA static volatile BaseType_t xSchedulerRunning = pdFALSE; diff --git a/FreeRTOS/Test/CBMC/proofs/Task/TaskIncrementTick/Configurations.json b/FreeRTOS/Test/CBMC/proofs/Task/TaskIncrementTick/Configurations.json index 12cc4e7b4..bad8abdd0 100644 --- a/FreeRTOS/Test/CBMC/proofs/Task/TaskIncrementTick/Configurations.json +++ b/FreeRTOS/Test/CBMC/proofs/Task/TaskIncrementTick/Configurations.json @@ -48,7 +48,7 @@ "CBMCFLAGS": [ "--unwind 1", - "--unwindset prvInitialiseTaskLists.0:8,vListInsert.0:2,xTaskIncrementTick.0:4" + "--unwindset prvInitialiseTaskLists.0:8,vListInsert.0:2,xTaskIncrementTick.5:4" ], "OBJS": [ diff --git a/FreeRTOS/Test/CBMC/proofs/Task/TaskResumeAll/Configurations.json b/FreeRTOS/Test/CBMC/proofs/Task/TaskResumeAll/Configurations.json index d2d1ab1f3..a52dad739 100644 --- a/FreeRTOS/Test/CBMC/proofs/Task/TaskResumeAll/Configurations.json +++ b/FreeRTOS/Test/CBMC/proofs/Task/TaskResumeAll/Configurations.json @@ -53,7 +53,7 @@ "CBMCFLAGS": [ "--unwind 1", - "--unwindset prvInitialiseTaskLists.0:8,xTaskResumeAll.0:2,vListInsert.0:5,xTaskIncrementTick.0:4" + "--unwindset prvInitialiseTaskLists.0:8,xTaskResumeAll.4:2,vListInsert.0:5,xTaskIncrementTick.5:4" ], "OBJS": diff --git a/manifest.yml b/manifest.yml index 1047f4a49..7229e2be7 100644 --- a/manifest.yml +++ b/manifest.yml @@ -4,7 +4,7 @@ description: "This is the standard distribution of FreeRTOS." dependencies: - name: "FreeRTOS-Kernel" - version: "bb6071e1d" + version: "ddd50d9a8" repository: type: "git" url: "https://github.com/FreeRTOS/FreeRTOS-Kernel.git" -- cgit v1.2.1