]> xenbits.xensource.com Git - xen.git/commit
Arm64: adjust __irq_to_desc() to fix build with gcc14
authorJan Beulich <jbeulich@suse.com>
Thu, 29 Aug 2024 08:03:53 +0000 (10:03 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 29 Aug 2024 08:03:53 +0000 (10:03 +0200)
commit99f942f3d410059dc223ee0a908827e928ef3592
tree099707dcc2b80d1f8488ad6ba175db16e96930fc
parentf1bcfaf1211ff14cc2975fbfc126c0ad296faa1f
Arm64: adjust __irq_to_desc() to fix build with gcc14

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 <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>
xen/arch/arm/include/asm/irq.h
xen/arch/arm/irq.c