adev->dev.driver = NULL;
 
        spin_lock(&apr->svcs_lock);
-       idr_alloc(&apr->svcs_idr, svc, svc_id, svc_id + 1, GFP_ATOMIC);
+       ret = idr_alloc(&apr->svcs_idr, svc, svc_id, svc_id + 1, GFP_ATOMIC);
        spin_unlock(&apr->svcs_lock);
+       if (ret < 0) {
+               dev_err(dev, "idr_alloc failed: %d\n", ret);
+               goto out;
+       }
 
-       of_property_read_string_index(np, "qcom,protection-domain",
-                                     1, &adev->service_path);
+       ret = of_property_read_string_index(np, "qcom,protection-domain",
+                                           1, &adev->service_path);
+       if (ret < 0) {
+               dev_err(dev, "Failed to read second value of qcom,protection-domain\n");
+               goto out;
+       }
 
        dev_info(dev, "Adding APR/GPR dev: %s\n", dev_name(&adev->dev));
 
                put_device(&adev->dev);
        }
 
+out:
        return ret;
 }