Hi Julien,

Thank you for your comment.

On 05.09.25 10:10, Julien Grall wrote:
> 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,
> 

Oh, sorry, the second part of the comment is redundant with the current 
implementation. It was correct when the function had an implementation 
and returned NULL. The correct comment is:

Defined as a prototype as it should not be called if 
CONFIG_GICV3_ESPI=n. Without CONFIG_GICV3_ESPI, the additional 1024 IRQ 
descriptors will not be defined, and thus, they cannot be used.

Should I prepare V8 with the comment fix, or can this be corrected on 
commit?

Best regards,
Leonid

Reply via email to