Fix PRSDK-442
authorJustin Sobota <jsobota@ti.com>
Thu, 21 Apr 2016 19:42:18 +0000 (15:42 -0400)
committerJustin Sobota <jsobota@ti.com>
Thu, 21 Apr 2016 19:42:18 +0000 (15:42 -0400)
Signed-off-by: Justin Sobota <jsobota@ti.com>
docs/ReleaseNotes_RM.doc
docs/ReleaseNotes_RM.pdf
package.xdc
rmver.h
src/rm_services.c

index da12b960b499180ae616fee9cafd5d286161baa0..38228c534be591933b0f9e42ea44b8eb67cacc97 100644 (file)
Binary files a/docs/ReleaseNotes_RM.doc and b/docs/ReleaseNotes_RM.doc differ
index e6fbe29d5b837b9eaa98b6ce264b2016d500ea6d..87460e1cd0c68190968d718cb6a7b11eb50f7fef 100644 (file)
Binary files a/docs/ReleaseNotes_RM.pdf and b/docs/ReleaseNotes_RM.pdf differ
index 08a39e912e11c6e5f22b86fbd31879d863d8fecb..21969f1fb793558d0ffd1e7cfd24e893e6330075 100755 (executable)
@@ -9,6 +9,6 @@
  * Copyright (C) 2012-2016, Texas Instruments, Inc.\r
  *****************************************************************************/\r
 \r
  * Copyright (C) 2012-2016, Texas Instruments, Inc.\r
  *****************************************************************************/\r
 \r
-package ti.drv.rm[2, 2, 0, 01] {\r
+package ti.drv.rm[2, 2, 0, 02] {\r
     module Settings;\r
 }\r
     module Settings;\r
 }\r
diff --git a/rmver.h b/rmver.h
index 18ebcb47f1cec2dd484265064323ab5b0018aafb..0e115095f08bdb6245f718d98dd910d41441efb5 100644 (file)
--- a/rmver.h
+++ b/rmver.h
@@ -52,13 +52,13 @@ extern "C" {
  * format:
  *  0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
  */
  * format:
  *  0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
  */
-#define RM_VERSION_ID                   (0x02020001)
+#define RM_VERSION_ID                   (0x02020002)
 
 /**
  * @brief   This is the version string which describes the RM along with the
  * date and build information.
  */
 
 /**
  * @brief   This is the version string which describes the RM along with the
  * date and build information.
  */
-#define RM_VERSION_STR                  "RM Revision: 02.02.00.01"
+#define RM_VERSION_STR                  "RM Revision: 02.02.00.02"
 
 
 #ifdef __cplusplus
 
 
 #ifdef __cplusplus
index 97c828d728043c76dde2c2505f29c3f9987b5e40..46ac94bf84714f065a412b5b2b07e0c0d42b105f 100644 (file)
@@ -6,7 +6,7 @@
  *
  *  \par
  *  ============================================================================
  *
  *  \par
  *  ============================================================================
- *  @n   (C) Copyright 2012-2015, Texas Instruments, Inc.
+ *  @n   (C) Copyright 2012-2016, Texas Instruments, Inc.
  * 
  *  Redistribution and use in source and binary forms, with or without 
  *  modification, are permitted provided that the following conditions 
  * 
  *  Redistribution and use in source and binary forms, with or without 
  *  modification, are permitted provided that the following conditions 
@@ -96,35 +96,36 @@ void Rm_serviceHandler (void *rmHandle, const Rm_ServiceReqInfo *serviceRequest,
     void           *key;
     void           *mtKey;
 
     void           *key;
     void           *mtKey;
 
-    RM_SS_INST_INV_ENTER_CS(rmInst, key);
-    RM_SC_INST_INV_ENTER_CS(rmInst, key);
-    if (rmInst->mtSemObj) {
-        mtKey = Rm_osalMtCsEnter(rmInst->mtSemObj);
-    }
-
-    if (rmInst->isLocked) {
-        serviceResponse->serviceState = RM_SERVICE_DENIED_RM_INSTANCE_LOCKED;
-        goto errorExit;
-    }
-
     if (serviceRequest->type >= Rm_service_LAST) {
         serviceResponse->serviceState = RM_ERROR_INVALID_SERVICE_TYPE;
     if (serviceRequest->type >= Rm_service_LAST) {
         serviceResponse->serviceState = RM_ERROR_INVALID_SERVICE_TYPE;
-        goto errorExit;
+        return;
     }
 
     if (serviceRequest->resourceName) {
         if ((strlen(serviceRequest->resourceName) + 1) > RM_NAME_MAX_CHARS) {
             serviceResponse->serviceState = RM_ERROR_RESOURCE_NAME_TOO_LONG;
     }
 
     if (serviceRequest->resourceName) {
         if ((strlen(serviceRequest->resourceName) + 1) > RM_NAME_MAX_CHARS) {
             serviceResponse->serviceState = RM_ERROR_RESOURCE_NAME_TOO_LONG;
-            goto errorExit;
+            return;
         }
     }
 
     if (serviceRequest->resourceNsName) {
         if ((strlen(serviceRequest->resourceNsName) + 1) > RM_NAME_MAX_CHARS) {
             serviceResponse->serviceState = RM_ERROR_NAMESERVER_NAME_TOO_LONG;
         }
     }
 
     if (serviceRequest->resourceNsName) {
         if ((strlen(serviceRequest->resourceNsName) + 1) > RM_NAME_MAX_CHARS) {
             serviceResponse->serviceState = RM_ERROR_NAMESERVER_NAME_TOO_LONG;
-            goto errorExit;
+            return;
         }
     }
         }
     }
+    
+    if (rmInst->isLocked) {
+        serviceResponse->serviceState = RM_SERVICE_DENIED_RM_INSTANCE_LOCKED;
+        return;
+    }
+
+    RM_SS_INST_INV_ENTER_CS(rmInst, key);
+    RM_SC_INST_INV_ENTER_CS(rmInst, key);
+
+    if (rmInst->mtSemObj) {
+        mtKey = Rm_osalMtCsEnter(rmInst->mtSemObj);
+    }
 
     /* Copy location of instance name to local variable in case Shared Client
      * needs to transfer control to a shared server */
 
     /* Copy location of instance name to local variable in case Shared Client
      * needs to transfer control to a shared server */
@@ -213,7 +214,6 @@ void Rm_serviceHandler (void *rmHandle, const Rm_ServiceReqInfo *serviceRequest,
         serviceResponse->serviceState = RM_ERROR_SERVICE_TRANS_NOT_CREATED;
     }
 
         serviceResponse->serviceState = RM_ERROR_SERVICE_TRANS_NOT_CREATED;
     }
 
-errorExit:
     /* Free sem object using originating instance in case the Shared Client to
      * Shared Server instance switch took place */
     if (((Rm_Inst *)rmHandle)->mtSemObj) {
     /* Free sem object using originating instance in case the Shared Client to
      * Shared Server instance switch took place */
     if (((Rm_Inst *)rmHandle)->mtSemObj) {