summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-16 14:59:20 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-16 15:00:08 +0100
commit3a66586c9e8432eee26b0e74c49c91362e22d24d (patch)
tree5327db87c0411cdd589728c34ac6dea54721280c
parentbsps/shared: Allow setting baud rate for zynq uart (diff)
downloadrtems-3a66586c9e8432eee26b0e74c49c91362e22d24d.tar.bz2
rtems: Allow RTEMS_PRIORITY for MrsP semaphores
In order to improve the compatibility of RTEMS 5.2 with future version of RTEMS which fixed #4346 allow MrsP semaphores to be created with RTEMS_PRIORITY. Close #4347.
-rw-r--r--cpukit/rtems/src/semcreate.c7
-rw-r--r--testsuites/sptests/spmrsp01/init.c6
2 files changed, 6 insertions, 7 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
diff --git a/testsuites/sptests/spmrsp01/init.c b/testsuites/sptests/spmrsp01/init.c
index a5f645d534..801b679ec9 100644
--- a/testsuites/sptests/spmrsp01/init.c
+++ b/testsuites/sptests/spmrsp01/init.c
@@ -72,12 +72,6 @@ static void test_mrsp_create_errors(void)
create_not_defined(
RTEMS_MULTIPROCESSOR_RESOURCE_SHARING
- | RTEMS_BINARY_SEMAPHORE
- | RTEMS_PRIORITY
- );
-
- create_not_defined(
- RTEMS_MULTIPROCESSOR_RESOURCE_SHARING
| RTEMS_INHERIT_PRIORITY
| RTEMS_BINARY_SEMAPHORE
);