summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/semcreate.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/src/semcreate.c')
-rw-r--r--cpukit/rtems/src/semcreate.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/cpukit/rtems/src/semcreate.c b/cpukit/rtems/src/semcreate.c
index b57b635d85..ea89800685 100644
--- a/cpukit/rtems/src/semcreate.c
+++ b/cpukit/rtems/src/semcreate.c
@@ -92,9 +92,14 @@ rtems_status_code rtems_semaphore_create(
) {
variant = SEMAPHORE_VARIANT_MUTEX_PRIORITY_CEILING;
} else if (
- mutex_with_protocol
+ ( mutex_with_protocol & ~RTEMS_PRIORITY )
== ( RTEMS_BINARY_SEMAPHORE | RTEMS_MULTIPROCESSOR_RESOURCE_SHARING )
) {
+ /*
+ * In RTEMS 5.2 using RTEMS_FIFO and RTEMS_PRIORITY for MrsP semaphores is
+ * allowed. In RTEMS 6, RTEMS_PRIORITY is required for MrsP semaphores
+ * analogous to priority ceiling semaphores.
+ */
#if defined(RTEMS_SMP)
variant = SEMAPHORE_VARIANT_MRSP;
#else