diff options
| author | James Morris <james.l.morris@oracle.com> | 2012-09-28 13:37:32 +1000 | 
|---|---|---|
| committer | James Morris <james.l.morris@oracle.com> | 2012-09-28 13:37:32 +1000 | 
| commit | bf5308344527d015ac9a6d2bda4ad4d40fd7d943 (patch) | |
| tree | 566e61e2cfc648c374d15cfc8c661b73e1a471f8 /drivers/iommu/intel_irq_remapping.c | |
| parent | 3585e96cd1049682b8a19a0b699422156e9d735b (diff) | |
| parent | 979570e02981d4a8fc20b3cc8fd651856c98ee9d (diff) | |
| download | olio-linux-3.10-bf5308344527d015ac9a6d2bda4ad4d40fd7d943.tar.xz olio-linux-3.10-bf5308344527d015ac9a6d2bda4ad4d40fd7d943.zip  | |
Merge tag 'v3.6-rc7' into next
Linux 3.6-rc7
Requested by David Howells so he can merge his key susbsystem work into
my tree with requisite -linus changesets.
Diffstat (limited to 'drivers/iommu/intel_irq_remapping.c')
| -rw-r--r-- | drivers/iommu/intel_irq_remapping.c | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c index e0b18f3ae9a..af8904de1d4 100644 --- a/drivers/iommu/intel_irq_remapping.c +++ b/drivers/iommu/intel_irq_remapping.c @@ -736,6 +736,7 @@ int __init parse_ioapics_under_ir(void)  {  	struct dmar_drhd_unit *drhd;  	int ir_supported = 0; +	int ioapic_idx;  	for_each_drhd_unit(drhd) {  		struct intel_iommu *iommu = drhd->iommu; @@ -748,13 +749,20 @@ int __init parse_ioapics_under_ir(void)  		}  	} -	if (ir_supported && ir_ioapic_num != nr_ioapics) { -		printk(KERN_WARNING -		       "Not all IO-APIC's listed under remapping hardware\n"); -		return -1; +	if (!ir_supported) +		return 0; + +	for (ioapic_idx = 0; ioapic_idx < nr_ioapics; ioapic_idx++) { +		int ioapic_id = mpc_ioapic_id(ioapic_idx); +		if (!map_ioapic_to_ir(ioapic_id)) { +			pr_err(FW_BUG "ioapic %d has no mapping iommu, " +			       "interrupt remapping will be disabled\n", +			       ioapic_id); +			return -1; +		}  	} -	return ir_supported; +	return 1;  }  int __init ir_dev_scope_init(void)  |