On 29/08/2024 07:55, Jan Beulich wrote:
> 
> 
> With the original code I observe
> 
> In function ‘__irq_to_desc’,
>     inlined from ‘route_irq_to_guest’ at arch/arm/irq.c:465:12:
> arch/arm/irq.c:54:16: error: array subscript -2 is below array bounds of 
> ‘irq_desc_t[32]’ {aka ‘struct irq_desc[32]’} [-Werror=array-bounds=]
>    54 |         return &this_cpu(local_irq_desc)[irq];
>       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> which looks pretty bogus: How in the world does the compiler arrive at
> -2 when compiling route_irq_to_guest()? Yet independent of that the
> function's parameter wants to be of unsigned type anyway, as shown by
> a vast majority of callers (others use plain int when they really mean
> non-negative quantities). With that adjustment the code compiles fine
> again.
> 
> Signed-off-by: Jan Beulich <[email protected]>
Acked-by: Michal Orzel <[email protected]>

Are there any places where we still require irq member of irq_desc to be signed?

~Michal

Reply via email to