[PATCH v3 0/2] Fix ARM Generic Timer interrupt parsing

Andrei Cherechesu (OSS) posted 2 patches 1 year, 1 month ago
Test gitlab-ci passed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20230313130803.3499098-1-andrei.cherechesu@oss.nxp.com
xen/arch/arm/include/asm/irq.h        |  2 ++
xen/arch/arm/include/asm/time.h       |  3 ++-
xen/arch/arm/irq.c                    | 14 +++++++++++
xen/arch/arm/time.c                   | 26 +++++++++++++++++---
xen/drivers/passthrough/arm/smmu-v3.c | 35 +++++----------------------
5 files changed, 46 insertions(+), 34 deletions(-)
[PATCH v3 0/2] Fix ARM Generic Timer interrupt parsing
Posted by Andrei Cherechesu (OSS) 1 year, 1 month ago
From: Andrei Cherechesu <andrei.cherechesu@nxp.com>

This 2-patch series fixes the parsing of the ARM Generic Timer
interrupts from the device tree.

If the generic timer interrupts order in the DT was different than
the expected order in Xen code, these interrupts would no longer be
correctly parsed and registered by Xen, and would result in boot
failure.

This method with using "interrupt-names" for the generic timer
interrupts instead of having them hardcoded in the DTB in a specific
order is the newer approach already implemented in Linux. Xen did not
have the necessary code for this approach, and it has been implemented
by the means of this patch series.

Functionality should remain the same if "interrupt-names" is not
present in the Generic Timer DTB node of the platform, but the
interrupts should then still be present in the expected "sec-phys",
"phys", "virt", "hyp-phys", "hyp-virt" order. If "interrupt-names"
is present, now it is also correctly handled.

Changes v2->v3:
 - Fixed 2nd commit message to mention that treating 0 as a valid
return for platform_get_irq would lead to a BUG() when trying to
reserve vIRQ being SGI instead of "during vgic_reserve_virq()".
 - Moved timer_irq_names[] in the init_dt_xen_time() function
as it's only used there, and marked it as __initconst and
also as const ptr.

Changes v1->v2:
 - Rebased on latest staging as of 2023-03-09
 - Fixed coding style of comment added in 2nd commit
 - Added to 2nd commit message explanation as to why 0 should
be treated as an error case for platform_get_irq


Andrei Cherechesu (2):
  arch/arm: irq: Add platform_get_irq_byname() implementation
  arch/arm: time: Add support for parsing interrupts by names

 xen/arch/arm/include/asm/irq.h        |  2 ++
 xen/arch/arm/include/asm/time.h       |  3 ++-
 xen/arch/arm/irq.c                    | 14 +++++++++++
 xen/arch/arm/time.c                   | 26 +++++++++++++++++---
 xen/drivers/passthrough/arm/smmu-v3.c | 35 +++++----------------------
 5 files changed, 46 insertions(+), 34 deletions(-)

-- 
2.35.1