From: sashiko-bot@kernel.org
To: "Naman Jain" <namjain@linux.microsoft.com>
Cc: linux-pci@vger.kernel.org, linux-hyperv@vger.kernel.org
Subject: Re: [PATCH v2 2/3] x86/irq: Use irq_chip_retrigger_hierarchy() in fixup_irqs()
Date: Mon, 10 Aug 2026 09:21:37 +0000 [thread overview]
Message-ID: <20260810092137.DA0ED1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260810090716.2325295-3-namjain@linux.microsoft.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] `irq_chip_retrigger_hierarchy()` skips the outermost interrupt chip, breaking retriggering for interrupts where the top-level chip directly implements `.irq_retrigger` (e.g., single-level domains).
--
--- Patch [2]: [PATCH v2 2/3] x86/irq: Use irq_chip_retrigger_hierarchy() in fixup_irqs() ---
commit 51de6b45bc61b20c750e5760473230c207ce5194
Author: Naman Jain <namjain@linux.microsoft.com>
x86/irq: Use irq_chip_retrigger_hierarchy() in fixup_irqs()
This commit updates fixup_irqs() to use a scoped guard for the
irq_desc lock and replaces the direct invocation of the outermost
chip's irq_retrigger() callback with irq_chip_retrigger_hierarchy().
> diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
> --- a/arch/x86/kernel/irq.c
> +++ b/arch/x86/kernel/irq.c
[ ... ]
> @@ -489,22 +484,18 @@ void fixup_irqs(void)
[ ... ]
> if (is_vector_pending(vector)) {
> - desc = __this_cpu_read(vector_irq[vector]);
> -
> - raw_spin_lock(&desc->lock);
> - data = irq_desc_get_irq_data(desc);
> - chip = irq_data_get_irq_chip(data);
> - if (chip->irq_retrigger) {
> - chip->irq_retrigger(data);
> + guard(raw_spinlock)(&desc->lock);
> + if (irq_chip_retrigger_hierarchy(&desc->irq_data))
[Severity: High]
Does this skip the outermost interrupt chip for single-level domains?
Looking at irq_chip_retrigger_hierarchy() in kernel/irq/chip.c, the loop
initialization immediately advances to the parent data:
int irq_chip_retrigger_hierarchy(struct irq_data *data)
{
for (data = data->parent_data; data; data = data->parent_data)
if (data->chip && data->chip->irq_retrigger)
return data->chip->irq_retrigger(data);
return 0;
}
For domains where the outermost chip directly implements the retrigger
callback (such as legacy interrupts in x86_vector_domain), data->parent_data
will be NULL or lack the retrigger logic. Will this cause the hierarchy walk
to just return 0 and silently drop the pending interrupt during CPU hot-unplug?
The generic try_retrigger() in kernel/irq/resend.c handles this by explicitly
checking desc->irq_data.chip->irq_retrigger before falling back to the
hierarchy walk. Should fixup_irqs() follow that same pattern to avoid skipping
the top-level chip?
> __this_cpu_write(vector_irq[vector], VECTOR_RETRIGGERED);
> - }
> - raw_spin_unlock(&desc->lock);
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260810090716.2325295-1-namjain@linux.microsoft.com?part=2
next prev parent reply other threads:[~2026-08-10 9:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 9:07 [PATCH v2 0/3] x86/irq: Fix lost interrupts on CPU hot-unplug for Hyper-V PCI/MSI Naman Jain
2026-08-10 9:07 ` [PATCH v2 1/3] PCI: hv: Set irq_retrigger callback for the Hyper-V PCI MSI irqchip Naman Jain
2026-08-10 9:13 ` sashiko-bot
2026-08-10 9:07 ` [PATCH v2 2/3] x86/irq: Use irq_chip_retrigger_hierarchy() in fixup_irqs() Naman Jain
2026-08-10 9:21 ` sashiko-bot [this message]
2026-08-10 9:07 ` [PATCH v2 3/3] x86/irq, iommu/amd, PCI: Drop redundant irq_retrigger inits Naman Jain
2026-08-10 9:23 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260810092137.DA0ED1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=namjain@linux.microsoft.com \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.