Browse Source

iommu/vt-d: Propagate error-value from ir_parse_ioapic_hpet_scope()

Propagate the error-value from the function ir_parse_ioapic_hpet_scope()
in parse_ioapics_under_ir() and cleanup its calling loop.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Joerg Roedel 9 years ago
parent
commit
66ef950d18
1 changed files with 11 additions and 6 deletions
  1. 11 6
      drivers/iommu/intel_irq_remapping.c

+ 11 - 6
drivers/iommu/intel_irq_remapping.c

@@ -934,13 +934,18 @@ static int __init parse_ioapics_under_ir(void)
 	bool ir_supported = false;
 	bool ir_supported = false;
 	int ioapic_idx;
 	int ioapic_idx;
 
 
-	for_each_iommu(iommu, drhd)
-		if (ecap_ir_support(iommu->ecap)) {
-			if (ir_parse_ioapic_hpet_scope(drhd->hdr, iommu))
-				return -1;
+	for_each_iommu(iommu, drhd) {
+		int ret;
 
 
-			ir_supported = true;
-		}
+		if (!ecap_ir_support(iommu->ecap))
+			continue;
+
+		ret = ir_parse_ioapic_hpet_scope(drhd->hdr, iommu);
+		if (ret)
+			return ret;
+
+		ir_supported = true;
+	}
 
 
 	if (!ir_supported)
 	if (!ir_supported)
 		return -ENODEV;
 		return -ENODEV;