Merge branch 'fixes' into for-linus
[firefly-linux-kernel-4.4.55.git] / drivers / iommu / intel-iommu.c
index db820d7dd0bc0a4d2f9af28f50b74ae638ebd1c3..d4a4cd445cabb40504bd2a1c7d5300656feceaff 100644 (file)
@@ -589,7 +589,9 @@ static void domain_update_iommu_coherency(struct dmar_domain *domain)
 {
        int i;
 
-       domain->iommu_coherency = 1;
+       i = find_first_bit(domain->iommu_bmp, g_num_of_iommus);
+
+       domain->iommu_coherency = i < g_num_of_iommus ? 1 : 0;
 
        for_each_set_bit(i, domain->iommu_bmp, g_num_of_iommus) {
                if (!ecap_coherent(g_iommus[i]->ecap)) {