]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/rm-lld.git/blobdiff - src/rm_policy.c
Return warning when opening CD instance due to instabilities. Fixed policy verificat...
[keystone-rtos/rm-lld.git] / src / rm_policy.c
index 418a19737df32c4326b3f1c8be887360066a2ece..d83b4bc7273c9fb26248a80f52a8fd99b7dd3895 100644 (file)
@@ -806,12 +806,12 @@ int32_t rmPolicyGetResourceOffset(void *policyDtb, char *resourceName)
         nodeOffset = RM_DTB_UTIL_STARTING_NODE_OFFSET;       
 
         /* Find node offset for provided resource name */
-        while ((nodeOffset >= RM_DTB_UTIL_STARTING_NODE_OFFSET) && 
-               (depth >= RM_DTB_UTIL_STARTING_DEPTH)) {
+        while (nodeOffset >= RM_DTB_UTIL_STARTING_NODE_OFFSET) {
             nodeOffset = fdt_next_node(policyDtb, nodeOffset, &depth);
             if (depth < RM_DTB_UTIL_STARTING_DEPTH) {
                 /* Resource name not found */
                 nodeOffset = RM_SERVICE_DENIED_RES_DOES_NOT_EXIST;
+                break;
             } 
             else {
                 nodeName = fdt_get_name(policyDtb, nodeOffset, NULL);
@@ -847,9 +847,11 @@ int32_t rmPolicyValidatePolicyResourceNames(Rm_Handle rmHandle)
     /* Parse DTB, verifying each resource's assignment permissions.
      * Permissions must have correct syntax and contain valid instance names
      * according validInstList */
-    while ((nodeOffset >= RM_DTB_UTIL_STARTING_NODE_OFFSET) && 
-           (depth >= RM_DTB_UTIL_STARTING_DEPTH)) {
+    while (nodeOffset >= RM_DTB_UTIL_STARTING_NODE_OFFSET) {
         nodeOffset = fdt_next_node(policyDtb, nodeOffset, &depth);
+        if (depth < RM_DTB_UTIL_STARTING_DEPTH) {
+            break;
+        }
         nodeName = fdt_get_name(policyDtb, nodeOffset, NULL);
         if (fdt_first_property_offset(policyDtb, nodeOffset) > RM_DTB_UTIL_STARTING_NODE_OFFSET) {
             if (rmAllocatorFind(rmHandle, nodeName) == NULL) {
@@ -890,9 +892,11 @@ int32_t rmPolicyValidatePolicy(Rm_Handle rmHandle)
     /* Parse DTB, verifying each resource's assignment permissions.
      * Permissions must have correct syntax and contain valid instance names
      * according validInstList */
-    while ((nodeOffset >= RM_DTB_UTIL_STARTING_NODE_OFFSET) && 
-           (depth >= RM_DTB_UTIL_STARTING_DEPTH)) {
+    while (nodeOffset >= RM_DTB_UTIL_STARTING_NODE_OFFSET) {
         nodeOffset = fdt_next_node(policyDtb, nodeOffset, &depth);
+        if (depth < RM_DTB_UTIL_STARTING_DEPTH) {
+            break;
+        }
         propertyOffset = fdt_first_property_offset(policyDtb, nodeOffset);                
         while (propertyOffset > RM_DTB_UTIL_STARTING_NODE_OFFSET) {
             propertyData = fdt_getprop_by_offset(policyDtb, propertyOffset, &propertyName, &propertyLen);