diff options
| author | Frédéric Desbiens <[email protected]> | 2025-09-28 21:15:19 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-09-28 21:15:19 +0100 |
| commit | 372e71ffc6ce67ed70637c2834e1561b0f7fa82f (patch) | |
| tree | 2ddf7485d610da0fcee717192cfe1fef38dac7b4 | |
| parent | ca7589ce4aec91a5ed87d44236fe507afd254821 (diff) | |
| parent | da0985e74897fc331290e15c6920e000ec80d663 (diff) | |
Merge commit from fork
Fixed issue where thread could get a higher priority than the module's value for max priority.
| -rw-r--r-- | common_modules/module_manager/inc/txm_module_manager_dispatch.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/common_modules/module_manager/inc/txm_module_manager_dispatch.h b/common_modules/module_manager/inc/txm_module_manager_dispatch.h index 4f30ad26..0ac2210d 100644 --- a/common_modules/module_manager/inc/txm_module_manager_dispatch.h +++ b/common_modules/module_manager/inc/txm_module_manager_dispatch.h @@ -1,5 +1,6 @@ /*************************************************************************** - * Copyright (c) 2024 Microsoft Corporation + * Copyright (c) 2024 Microsoft Corporation + * Copyright (c) 2025 Eclipse ThreadX Contributors * * This program and the accompanying materials are made available under the * terms of the MIT License which is available at @@ -2389,6 +2390,11 @@ static ALIGN_TYPE _txm_module_manager_tx_thread_preemption_change_dispatch(TXM_M ALIGN_TYPE return_value; + if (param_1 < module_instance -> txm_module_instance_maximum_priority) + { + return(TX_THRESH_ERROR); + } + if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION) { if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD))) @@ -2418,6 +2424,11 @@ static ALIGN_TYPE _txm_module_manager_tx_thread_priority_change_dispatch(TXM_MOD ALIGN_TYPE return_value; + if (param_1 < module_instance -> txm_module_instance_maximum_priority) + { + return(TX_PRIORITY_ERROR); + } + if (module_instance -> txm_module_instance_property_flags & TXM_MODULE_MEMORY_PROTECTION) { if (!TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, param_0, sizeof(TX_THREAD))) |
