ecap_smpwc(iommu->ecap) : ecap_coherent(iommu->ecap);
 }
 
-static int domain_update_iommu_superpage(struct dmar_domain *domain,
-                                        struct intel_iommu *skip)
-{
-       struct dmar_drhd_unit *drhd;
-       struct intel_iommu *iommu;
-       int mask = 0x3;
-
-       if (!intel_iommu_superpage)
-               return 0;
-
-       /* set iommu_superpage to the smallest common denominator */
-       rcu_read_lock();
-       for_each_active_iommu(iommu, drhd) {
-               if (iommu != skip) {
-                       if (domain && domain->use_first_level) {
-                               if (!cap_fl1gp_support(iommu->cap))
-                                       mask = 0x1;
-                       } else {
-                               mask &= cap_super_page_val(iommu->cap);
-                       }
-
-                       if (!mask)
-                               break;
-               }
-       }
-       rcu_read_unlock();
-
-       return fls(mask);
-}
-
 /* Return the super pagesize bitmap if supported. */
 static unsigned long domain_super_pgsize_bitmap(struct dmar_domain *domain)
 {
 
 static int intel_iommu_add(struct dmar_drhd_unit *dmaru)
 {
-       int sp, ret;
        struct intel_iommu *iommu = dmaru->iommu;
+       int ret;
 
        ret = intel_cap_audit(CAP_AUDIT_HOTPLUG_DMAR, iommu);
        if (ret)
                goto out;
 
-       sp = domain_update_iommu_superpage(NULL, iommu) - 1;
-       if (sp >= 0 && !(cap_super_page_val(iommu->cap) & (1 << sp))) {
-               pr_warn("%s: Doesn't support large page.\n",
-                       iommu->name);
-               return -ENXIO;
-       }
-
        /*
         * Disable translation if already enabled prior to OS handover.
         */