Re: [PATCH] x86/apic/msi: Fix MSI interrupt affinity configuration

From: Thomas Gleixner

Date: Thu Oct 15 2026 - 18:13:07 EST


On Wed, Sep 30 2026 at 01:29, Koichiro Den wrote:
> On Tue, Sep 29, 2026 at 12:48:39AM +0800, WeitaoWang-oc wrote:
>> commit b56ebe7c896d ("x86/apic/msi: Fix misconfigured non-maskable MSI
>> quirk") try to fix the issue of misconfigured non-maskable MSI quirk.
>> For non-maskable MSI interrupts, use the slow path to fix the MSI affinity
>> race. Maskable MSI interrupts use the direct path to update configuration
>> info. However, the current code logic is the opposite as only maskable
>> MSI interrupts will enable reservation mode.

Please read:

https://docs.kernel.org/process/maintainer-tip.html#changelog

and restructure and reword the changelog accordingly. The above is
incomprehensible word salad.

>> Fixes: ef8dd01538ea ("genirq/msi: Make interrupt allocation less convoluted")
>
> I'd rather (or also) add:
>
> Fixes: b56ebe7c896d ("x86/apic/msi: Fix misconfigured non-maskable MSI quirk")

That's the correct Fixes tag.

> As I recall, I started out trying to fix the issue, but then got too focused on
> removing the flag. I missed that the check needed to be inverted.

I missed it too :)

>> @@ -62,7 +62,7 @@ msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)
>> * - The interrupt is not yet started up
>> * - The new destination CPU is the same as the old destination CPU
>> */
>> - if (!irqd_can_reserve(irqd) ||
>> + if (irqd_can_reserve(irqd) ||

Amazing that this went unnoticed so long ...

>> cfg->vector == old_cfg.vector ||
>> old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR ||
>> !irqd_is_started(irqd) ||
>> --
>> 2.32.0
>>