Re: [PATCH] iommu/vt-d: Fix modify_irte NULL pointer

From: Thomas Gleixner
Date: Mon Aug 22 2016 - 08:40:54 EST


On Mon, 22 Aug 2016, Wanpeng Li wrote:

> From: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
>
> 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