There is not hardware requirement to have a different delivery mode for each interrupt. Instead of using the delivery mode of the APIC driver, use the delivery mode of each specific interrupt configuration.
This allows to accommodate interrupts which require a specific delivery mode, such as the HPET hardlockup detector. Outside of such case, there are not functional changes since the delivery mode of an interrupt is initialized with the delivery mode of the APIC driver. Cc: Andi Kleen <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: David Woodhouse <[email protected]> (supporter:INTEL IOMMU (VT-d)) Cc: "Ravi V. Shankar" <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jacob Pan <[email protected]> Cc: Lu Baolu <[email protected]> (supporter:INTEL IOMMU (VT-d)) Cc: Stephane Eranian <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: [email protected] (open list:INTEL IOMMU (VT-d)) Cc: [email protected] Reviewed-by: Ashok Raj <[email protected]> Signed-off-by: Ricardo Neri <[email protected]> --- Changes since v4: * Introduced this patch. Changes since v3: * N/A Changes since v2: * N/A Changes since v1: * N/A --- drivers/iommu/amd/iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index a69a8b573e40..e8d9fae0c766 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3122,7 +3122,7 @@ static void irq_remapping_prepare_irte(struct amd_ir_data *data, data->irq_2_irte.devid = devid; data->irq_2_irte.index = index + sub_handle; - iommu->irte_ops->prepare(data->entry, apic->delivery_mode, + iommu->irte_ops->prepare(data->entry, irq_cfg->delivery_mode, apic->dest_mode_logical, irq_cfg->vector, irq_cfg->dest_apicid, devid); -- 2.17.1 _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
