On Mon, 22 Aug 2016, Wanpeng Li wrote: > From: Wanpeng Li <wanpeng...@hotmail.com> > > native_smp_prepare_cpus > -> default_setup_apic_routing > -> enable_IR_x2apic > -> irq_remapping_prepare > -> intel_prepare_irq_remapping > -> parse_ioapics_under_ir => return 0 > -> ir_parse_ioapic_hpet_scope > -> ir_parse_one_ioapic_scope > -> intel_setup_irq_remapping > IR table is setup even if noapic boot parameter is added. > index ac59692..f1cb7c6 100644 > --- a/drivers/iommu/intel_irq_remapping.c > +++ b/drivers/iommu/intel_irq_remapping.c > @@ -854,6 +854,9 @@ static int ir_parse_one_ioapic_scope(struct > acpi_dmar_device_scope *scope, > count = (scope->length - sizeof(struct acpi_dmar_device_scope)) > / sizeof(struct acpi_dmar_pci_path); > > + if (skip_ioapic_setup) > + return -ENODEV;
Why are you adding this in the iommu code? We should not call any of the apic functions when apic is disabled. Thanks, tglx