GET_SCTLR(base, ctx), GET_ACTLR(base, ctx));
 }
 
-static void insert_iommu_master(struct device *dev,
+static int insert_iommu_master(struct device *dev,
                                struct msm_iommu_dev **iommu,
                                struct of_phandle_args *spec)
 {
 
        if (list_empty(&(*iommu)->ctx_list)) {
                master = kzalloc(sizeof(*master), GFP_ATOMIC);
+               if (!master) {
+                       dev_err(dev, "Failed to allocate iommu_master\n");
+                       return -ENOMEM;
+               }
                master->of_node = dev->of_node;
                list_add(&master->list, &(*iommu)->ctx_list);
                dev_iommu_priv_set(dev, master);
                if (master->mids[sid] == spec->args[0]) {
                        dev_warn(dev, "Stream ID 0x%hx repeated; ignoring\n",
                                 sid);
-                       return;
+                       return 0;
                }
 
        master->mids[master->num_mids++] = spec->args[0];
+       return 0;
 }
 
 static int qcom_iommu_of_xlate(struct device *dev,
                goto fail;
        }
 
-       insert_iommu_master(dev, &iommu, spec);
+       ret = insert_iommu_master(dev, &iommu, spec);
 fail:
        spin_unlock_irqrestore(&msm_iommu_lock, flags);