RE: [PATCH v5 3/4] x86/irq: Use irq_chip_retrigger_hierarchy() in msi_set_affinity()

From: Michael Kelley

Date: Mon Sep 21 2026 - 17:02:23 EST


From: Naman Jain <namjain@xxxxxxxxxxxxxxxxxxx> Sent: Monday, September 14, 2026 4:19 AM
>
> msi_set_affinity() re-injects a pending interrupt on its new target by
> looking at the outermost domain chip and invoking its irq_retrigger()
> callback. Since this mirrors the behavior of
> irq_chip_retrigger_hierarchy(), use the helper directly instead.

This commit message glosses over the key point. I think the full
statement is that in all cases where msi_set_affinity() is called, the
irqchip's .irq_retrigger function is set to irq_chip_retrigger_hierarchy().
Both are set only in x86_init_dev_msi_info(). So it is equivalent to
just call irq_chip_retrigger_hierarchy() directly.

>
> Suggested-by: Thomas Gleixner <tglx@xxxxxxxxxx>
> Reviewed-by: Shradha Gupta <shradhagupta@xxxxxxxxxxxxxxxxxxx>
> Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxx>
> Signed-off-by: Naman Jain <namjain@xxxxxxxxxxxxxxxxxxx>
> ---
> arch/x86/kernel/apic/msi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
> index 66bc5d3e79db3..9160227b9b32a 100644
> --- a/arch/x86/kernel/apic/msi.c
> +++ b/arch/x86/kernel/apic/msi.c
> @@ -137,7 +137,7 @@ msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)
> * IRR.
> */
> if (lapic_vector_set_in_irr(cfg->vector))
> - irq_data_get_irq_chip(irqd)->irq_retrigger(irqd);
> + irq_chip_retrigger_hierarchy(irqd);
>
> return ret;
> }
> --
> 2.43.0
>