Hi Leonid,

On 04/09/2025 21:01, Leonid Komarianskyi wrote:
diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/irq.h
index 5bc6475eb4..2ff2d07d6d 100644
--- a/xen/arch/arm/include/asm/irq.h
+++ b/xen/arch/arm/include/asm/irq.h
@@ -32,6 +32,10 @@ struct arch_irq_desc {
  #define SPI_MAX_INTID   1019
  #define LPI_OFFSET      8192
+#define ESPI_BASE_INTID 4096
+#define ESPI_MAX_INTID  5119
+#define NR_ESPI_IRQS    1024
+
  /* LPIs are always numbered starting at 8192, so 0 is a good invalid case. */
  #define INVALID_LPI     0
@@ -39,7 +43,12 @@ struct arch_irq_desc {
  #define INVALID_IRQ     1023
extern const unsigned int nr_irqs;
+#ifdef CONFIG_GICV3_ESPI
+/* This will cover the eSPI range, to allow asignmant of eSPIs to domains. */

Typo: s/asignmant/assignment/

[...]

Unless INTIDs from the eSPI
+ * range are mistakenly defined in Xen DTS when the appropriate config is
+ * disabled, this function will not be reached because is_espi will return
+ * false for non-eSPI INTIDs.

I am still confused with this paragraph. How is this function can be reached if it is compiled out? Surely, if the DT is misconfigured, we should get an error when trying to route the interrupt. No? If so, can you point me to that code?

Cheers,

--
aJulien Grall


Reply via email to