Resolved SDOCM00114533
authorJustin Sobota <jsobota@ti.com>
Tue, 27 Jan 2015 19:47:14 +0000 (14:47 -0500)
committerJustin Sobota <jsobota@ti.com>
Tue, 27 Jan 2015 19:47:14 +0000 (14:47 -0500)
docs/ReleaseNotes_RM.doc
docs/ReleaseNotes_RM.pdf
src/rm.c
src/rm_services.c

index a1da1fd29006d1b61cf6828297e54affc463af19..2b9268c9658c03acbc62de1a9964862b224a0ec6 100644 (file)
Binary files a/docs/ReleaseNotes_RM.doc and b/docs/ReleaseNotes_RM.doc differ
index e7edde5020d5074afc44514f3d8063efd7d4617d..0a42db183bbe88612638bd79e9846f12b16f7648 100644 (file)
Binary files a/docs/ReleaseNotes_RM.pdf and b/docs/ReleaseNotes_RM.pdf differ
index af43b4a9618c644019defbae32bad73f14008f4e..f75e5d5f55f76b595ba18c3ce72e487801ad5584 100644 (file)
--- a/src/rm.c
+++ b/src/rm.c
@@ -6,7 +6,7 @@
  *
  *  \par
  *  ============================================================================
- *  @n   (C) Copyright 2012-2014, Texas Instruments, Inc.
+ *  @n   (C) Copyright 2012-2015, Texas Instruments, Inc.
  * 
  *  Redistribution and use in source and binary forms, with or without 
  *  modification, are permitted provided that the following conditions 
@@ -1332,9 +1332,11 @@ int32_t Rm_resourceStatus(Rm_Handle rmHandle, int printResources)
         totalResOwners = RM_ERROR_INVALID_RES_STATUS_INSTANCE;
     }  
 
-    if (rmInst->mtSemObj) {
-        Rm_osalMtCsExit(rmInst->mtSemObj, mtKey);
-    }
+    /* Free sem object using originating instance in case the Shared Client to Shared
+     * Server instance switch took place */
+    if (((Rm_Inst *)rmHandle)->mtSemObj) {
+        Rm_osalMtCsExit(((Rm_Inst *)rmHandle)->mtSemObj, mtKey);
+    }    
     RM_SS_INST_WB_EXIT_CS(rmInst, key);
     return(totalResOwners);
 }
@@ -1422,9 +1424,11 @@ void Rm_instanceStatus(Rm_Handle rmHandle)
             transactionQ = transactionQ->nextTransaction;
         }    
     }
-
-    if (rmInst->mtSemObj) {
-        Rm_osalMtCsExit(rmInst->mtSemObj, mtKey);
+    
+    /* Free sem object using originating instance in case the Shared Client to Shared
+     * Server instance switch took place */
+    if (((Rm_Inst *)rmHandle)->mtSemObj) {
+        Rm_osalMtCsExit(((Rm_Inst *)rmHandle)->mtSemObj, mtKey);
     }    
     RM_SS_INST_WB_EXIT_CS(rmInst, key);    
 }
index 32b214cf3d7b782dcd6a2509bd11ac6d8d006829..26f1743c6e0bca247a6a98186c4b788d55c7bc3d 100644 (file)
@@ -6,7 +6,7 @@
  *
  *  \par
  *  ============================================================================
- *  @n   (C) Copyright 2012-2014, Texas Instruments, Inc.
+ *  @n   (C) Copyright 2012-2015, Texas Instruments, Inc.
  * 
  *  Redistribution and use in source and binary forms, with or without 
  *  modification, are permitted provided that the following conditions 
@@ -203,9 +203,11 @@ void Rm_serviceHandler (void *rmHandle, const Rm_ServiceReqInfo *serviceRequest,
     else {
         serviceResponse->serviceState = RM_ERROR_SERVICE_TRANS_NOT_CREATED;    
     }
-    
-    if (rmInst->mtSemObj) {
-        Rm_osalMtCsExit(rmInst->mtSemObj, mtKey);
+
+    /* Free sem object using originating instance in case the Shared Client to Shared
+     * Server instance switch took place */
+    if (((Rm_Inst *)rmHandle)->mtSemObj) {
+        Rm_osalMtCsExit(((Rm_Inst *)rmHandle)->mtSemObj, mtKey);
     }
     RM_SS_INST_WB_EXIT_CS(rmInst, key);
     return;