struct io_pgtable_ops *pgtbl_ops;
        struct protection_domain *domain;
        int pgtable;
-       int mode = DEFAULT_PGTABLE_LEVEL;
        int ret;
 
-       /*
-        * Force IOMMU v1 page table when iommu=pt and
-        * when allocating domain for pass-through devices.
-        */
-       if (type == IOMMU_DOMAIN_IDENTITY) {
-               pgtable = AMD_IOMMU_V1;
-               mode = PAGE_MODE_NONE;
-       } else if (type == IOMMU_DOMAIN_UNMANAGED) {
-               pgtable = AMD_IOMMU_V1;
-       } else if (type == IOMMU_DOMAIN_DMA || type == IOMMU_DOMAIN_DMA_FQ) {
-               pgtable = amd_iommu_pgtable;
-       } else {
-               return NULL;
-       }
-
        domain = kzalloc(sizeof(*domain), GFP_KERNEL);
        if (!domain)
                return NULL;
 
        spin_lock_init(&domain->lock);
        INIT_LIST_HEAD(&domain->dev_list);
+       domain->nid = NUMA_NO_NODE;
+
+       switch (type) {
+       /* No need to allocate io pgtable ops in passthrough mode */
+       case IOMMU_DOMAIN_IDENTITY:
+               return domain;
+       case IOMMU_DOMAIN_DMA:
+       case IOMMU_DOMAIN_DMA_FQ:
+               pgtable = amd_iommu_pgtable;
+               break;
+       /*
+        * Force IOMMU v1 page table when allocating
+        * domain for pass-through devices.
+        */
+       case IOMMU_DOMAIN_UNMANAGED:
+               pgtable = AMD_IOMMU_V1;
+               break;
+       default:
+               goto out_err;
+       }
 
        switch (pgtable) {
        case AMD_IOMMU_V1:
-               ret = protection_domain_init_v1(domain, mode);
+               ret = protection_domain_init_v1(domain, DEFAULT_PGTABLE_LEVEL);
                break;
        case AMD_IOMMU_V2:
                ret = protection_domain_init_v2(domain);
                break;
        default:
                ret = -EINVAL;
+               break;
        }
 
        if (ret)
                goto out_err;
 
-       /* No need to allocate io pgtable ops in passthrough mode */
-       if (type == IOMMU_DOMAIN_IDENTITY)
-               return domain;
-
-       domain->nid = NUMA_NO_NODE;
-
        pgtbl_ops = alloc_io_pgtable_ops(pgtable, &domain->iop.pgtbl_cfg, domain);
        if (!pgtbl_ops) {
                domain_id_free(domain->id);