summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-07-04 14:32:35 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-07-04 14:52:16 +0200
commit46cd17a3be28bd56ea47a874b52a1102beaba484 (patch)
treef415ded08ff65cd3cf46e1773eaa820e6c861e1b
parentscore: PR2183: Fix context switch on SMP (diff)
downloadrtems-46cd17a3be28bd56ea47a874b52a1102beaba484.tar.bz2
score: Fix MrsP resource root change
Use the root of the owner for the new root, since the owner may depend on a resource as well.
-rw-r--r--cpukit/score/include/rtems/score/mrspimpl.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpukit/score/include/rtems/score/mrspimpl.h b/cpukit/score/include/rtems/score/mrspimpl.h
index 2369d9de83..5efb619d0b 100644
--- a/cpukit/score/include/rtems/score/mrspimpl.h
+++ b/cpukit/score/include/rtems/score/mrspimpl.h
@@ -193,7 +193,10 @@ RTEMS_INLINE_ROUTINE MRSP_Status _MRSP_Wait_for_ownership(
_Chain_Append_unprotected( &mrsp->Rivals, &rival.Node );
_Resource_Add_rival( &mrsp->Resource, &executing->Resource_node );
_Resource_Node_set_dependency( &executing->Resource_node, &mrsp->Resource );
- _MRSP_Set_root( &executing->Resource_node, owner );
+ _MRSP_Set_root(
+ &executing->Resource_node,
+ _Resource_Node_get_root( owner )
+ );
if ( timeout > 0 ) {
_Watchdog_Initialize(