|
@@ -2432,7 +2432,13 @@ unsigned int arch_dynirq_lower_bound(unsigned int from)
|
|
|
* dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use
|
|
* dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use
|
|
|
* gsi_top if ioapic_dynirq_base hasn't been initialized yet.
|
|
* gsi_top if ioapic_dynirq_base hasn't been initialized yet.
|
|
|
*/
|
|
*/
|
|
|
- return ioapic_initialized ? ioapic_dynirq_base : gsi_top;
|
|
|
|
|
|
|
+ if (!ioapic_initialized)
|
|
|
|
|
+ return gsi_top;
|
|
|
|
|
+ /*
|
|
|
|
|
+ * For DT enabled machines ioapic_dynirq_base is irrelevant and not
|
|
|
|
|
+ * updated. So simply return @from if ioapic_dynirq_base == 0.
|
|
|
|
|
+ */
|
|
|
|
|
+ return ioapic_dynirq_base ? : from;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#ifdef CONFIG_X86_32
|
|
#ifdef CONFIG_X86_32
|