From: Mykola Kvach <mykola_kvach@epam.com>
To: xen-devel@lists.xenproject.org
Cc: "Stefano Stabellini" <sstabellini@kernel.org>,
"Julien Grall" <julien@xen.org>,
"Bertrand Marquis" <bertrand.marquis@arm.com>,
"Michal Orzel" <michal.orzel@amd.com>,
"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"Anthony PERARD" <anthony.perard@vates.tech>,
"Jan Beulich" <jbeulich@suse.com>,
"Roger Pau Monné" <roger@xenproject.org>,
"Jens Wiklander" <jenswi@kernel.org>
Subject: [PATCH v2 0/3] xen/arm: Fix eSPI IRQ handling
Date: Mon, 10 Aug 2026 21:38:44 +0300 [thread overview]
Message-ID: <cover.1786385827.git.mykola_kvach@epam.com> (raw)
This series fixes sparse eSPI INTID handling and checks errors returned by
irq_set_type().
Xen has IRQ descriptors for INTIDs below NR_IRQS and for eSPIs starting at
4096. It has no descriptors for INTIDs 1024 through 4095. Patch 1 checks
INTIDs in setup_irq() and irq_set_spi_type() before these functions look up
a descriptor. irq_set_spi_type() checks descriptor ranges because the GIC
line counts are not known yet. setup_irq() uses the line counts once they
are available.
Patch 2 fixes the vGIC allocation bitmap. Reserving an eSPI used a compact
bitmap index, but freeing it used the raw virtual INTID. This could write
past the bitmap and leave the eSPI reserved.
Patch 3 is new in v2. It checks errors from irq_set_type() in the GTDT,
MADT, SPCR, and FF-A paths. GTDT and MADT could keep a rejected timer or
maintenance INTID and later use it in a direct descriptor lookup. This
patch also fixes MISRA C Rule 17.7 violations.
Tested with:
- Arm64 debug builds with CONFIG_ACPI=y and CONFIG_FFA=y, both with and
without CONFIG_GICV3_ESPI
- FVP Device Tree boot with 64 eSPIs; Linux dom0 started
- QEMU virt UEFI/ACPI boot to a dom0 initramfs shell; this covered the GTDT,
GICv3 MADT, and PL011 SPCR paths
Changes in v2:
- Check descriptor ranges in irq_set_spi_type() and implemented GIC lines
in setup_irq().
- Keep the is_espi() debug check when CONFIG_GICV3_ESPI is disabled.
- Remove a redundant CONFIG_GICV3_ESPI guard from the vGIC code.
- Add patch 3 to check irq_set_type() errors in the GTDT, MADT, SPCR, and
FF-A paths.
- Target master instead of the 4.22 release.
v1: https://patchew.org/Xen/cover.1783671887.git.mykola._5Fkvach@epam.com/
Mykola Kvach (3):
xen/arm: validate IRQs before descriptor lookup
xen/arm: vgic: free eSPIs using the bitmap index
xen/arm: handle irq_set_type() failures
xen/arch/arm/gic-v2.c | 8 ++++++--
xen/arch/arm/gic-v3.c | 8 ++++++--
xen/arch/arm/irq.c | 29 ++++++++++++++++++++++++-----
xen/arch/arm/tee/ffa_notif.c | 11 ++++++++++-
xen/arch/arm/time.c | 18 ++++++++++++++----
xen/arch/arm/vgic.c | 25 ++++++++++++++-----------
xen/drivers/char/ns16550.c | 5 ++++-
xen/drivers/char/pl011.c | 4 +++-
8 files changed, 81 insertions(+), 27 deletions(-)
--
2.43.0
next reply other threads:[~2026-08-10 18:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 18:38 Mykola Kvach [this message]
2026-08-10 18:38 ` [PATCH v2 1/3] xen/arm: validate IRQs before descriptor lookup Mykola Kvach
2026-08-11 8:51 ` Orzel, Michal
2026-08-18 9:46 ` Mykola Kvach
2026-08-10 18:38 ` [PATCH v2 2/3] xen/arm: vgic: free eSPIs using the bitmap index Mykola Kvach
2026-08-10 18:38 ` [PATCH v2 3/3] xen/arm: handle irq_set_type() failures Mykola Kvach
2026-08-11 13:01 ` Andrew Cooper
2026-08-18 9:49 ` Mykola Kvach
2026-08-12 7:39 ` Jan Beulich
2026-08-18 9:51 ` Mykola Kvach
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=cover.1786385827.git.mykola_kvach@epam.com \
--to=mykola_kvach@epam.com \
--cc=Volodymyr_Babchuk@epam.com \
--cc=andrew.cooper3@citrix.com \
--cc=anthony.perard@vates.tech \
--cc=bertrand.marquis@arm.com \
--cc=jbeulich@suse.com \
--cc=jenswi@kernel.org \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=roger@xenproject.org \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/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.