__sysmmu_disable_nocount(data);
 
                dev_dbg(data->sysmmu, "Disabled\n");
-       } else  {
-               dev_dbg(data->sysmmu, "%d times left to disable\n",
-                                       data->activations);
        }
 
        spin_unlock_irqrestore(&data->lock, flags);
 static int __sysmmu_enable(struct sysmmu_drvdata *data, phys_addr_t pgtable,
                           struct exynos_iommu_domain *domain)
 {
-       int ret = 0;
        unsigned long flags;
 
        spin_lock_irqsave(&data->lock, flags);
        if (set_sysmmu_active(data)) {
                data->pgtable = pgtable;
                data->domain = domain;
-
                __sysmmu_enable_nocount(data);
-
                dev_dbg(data->sysmmu, "Enabled\n");
-       } else {
-               ret = (pgtable == data->pgtable) ? 1 : -EBUSY;
-
-               dev_dbg(data->sysmmu, "already enabled\n");
        }
-
-       if (WARN_ON(ret < 0))
-               set_sysmmu_inactive(data); /* decrement count */
-
        spin_unlock_irqrestore(&data->lock, flags);
 
-       return ret;
+       return 0;
 }
 
 static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data,
        spin_lock_irqsave(&domain->lock, flags);
 
        list_for_each_entry_safe(data, next, &domain->clients, domain_node) {
-               if (__sysmmu_disable(data))
-                       data->master = NULL;
+               __sysmmu_disable(data);
+               data->master = NULL;
                list_del_init(&data->domain_node);
        }
 
        phys_addr_t pagetable = virt_to_phys(domain->pgtable);
        struct sysmmu_drvdata *data, *next;
        unsigned long flags;
-       bool found = false;
 
        if (!has_sysmmu(dev) || owner->domain != iommu_domain)
                return;
 
        spin_lock_irqsave(&domain->lock, flags);
        list_for_each_entry_safe(data, next, &domain->clients, domain_node) {
-               if (data->master == dev) {
-                       if (__sysmmu_disable(data)) {
-                               data->master = NULL;
-                               list_del_init(&data->domain_node);
-                       }
-                       pm_runtime_put(data->sysmmu);
-                       found = true;
-               }
+               __sysmmu_disable(data);
+               data->master = NULL;
+               list_del_init(&data->domain_node);
+               pm_runtime_put(data->sysmmu);
        }
        spin_unlock_irqrestore(&domain->lock, flags);
 
        owner->domain = NULL;
 
-       if (found)
-               dev_dbg(dev, "%s: Detached IOMMU with pgtable %pa\n",
-                                       __func__, &pagetable);
-       else
-               dev_err(dev, "%s: No IOMMU is attached\n", __func__);
+       dev_dbg(dev, "%s: Detached IOMMU with pgtable %pa\n", __func__,
+               &pagetable);
 }
 
 static int exynos_iommu_attach_device(struct iommu_domain *iommu_domain,
        struct sysmmu_drvdata *data;
        phys_addr_t pagetable = virt_to_phys(domain->pgtable);
        unsigned long flags;
-       int ret = -ENODEV;
 
        if (!has_sysmmu(dev))
                return -ENODEV;
 
        list_for_each_entry(data, &owner->controllers, owner_node) {
                pm_runtime_get_sync(data->sysmmu);
-               ret = __sysmmu_enable(data, pagetable, domain);
-               if (ret >= 0) {
-                       data->master = dev;
+               __sysmmu_enable(data, pagetable, domain);
+               data->master = dev;
 
-                       spin_lock_irqsave(&domain->lock, flags);
-                       list_add_tail(&data->domain_node, &domain->clients);
-                       spin_unlock_irqrestore(&domain->lock, flags);
-               }
-       }
-
-       if (ret < 0) {
-               dev_err(dev, "%s: Failed to attach IOMMU with pgtable %pa\n",
-                                       __func__, &pagetable);
-               return ret;
+               spin_lock_irqsave(&domain->lock, flags);
+               list_add_tail(&data->domain_node, &domain->clients);
+               spin_unlock_irqrestore(&domain->lock, flags);
        }
 
        owner->domain = iommu_domain;
-       dev_dbg(dev, "%s: Attached IOMMU with pgtable %pa %s\n",
-               __func__, &pagetable, (ret == 0) ? "" : ", again");
+       dev_dbg(dev, "%s: Attached IOMMU with pgtable %pa\n", __func__,
+               &pagetable);
 
-       return ret;
+       return 0;
 }
 
 static sysmmu_pte_t *alloc_lv2entry(struct exynos_iommu_domain *domain,