summaryrefslogtreecommitdiff
path: root/drivers/iommu/intel_irq_remapping.c
diff options
context:
space:
mode:
authorJoerg Roedel <jroedel@suse.de>2015-10-23 12:57:13 +0300
committerJoerg Roedel <jroedel@suse.de>2015-10-23 13:00:54 +0300
commit66ef950d1841487c852d68d00977726f1cd9f053 (patch)
treec33af2c8620fa3027bccc59243838deda5287040 /drivers/iommu/intel_irq_remapping.c
parenta13c8f27e4d79420ae7bcb48123fa13851026428 (diff)
downloadlinux-66ef950d1841487c852d68d00977726f1cd9f053.tar.xz
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>
Diffstat (limited to 'drivers/iommu/intel_irq_remapping.c')
-rw-r--r--drivers/iommu/intel_irq_remapping.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index 7843252afda8..f3a9bd1bea43 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -934,13 +934,18 @@ static int __init parse_ioapics_under_ir(void)
bool ir_supported = false;
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)
return -ENODEV;