summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2025-09-28 21:15:19 +0100
committerGitHub <[email protected]>2025-09-28 21:15:19 +0100
commit372e71ffc6ce67ed70637c2834e1561b0f7fa82f (patch)
tree2ddf7485d610da0fcee717192cfe1fef38dac7b4
parentca7589ce4aec91a5ed87d44236fe507afd254821 (diff)
parentda0985e74897fc331290e15c6920e000ec80d663 (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.h13
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)))