]> xenbits.xensource.com Git - xen.git/commitdiff
xen: x86: irq: initialize irq desc in create_irq()
authorVolodymyr Babchuk <volodymyr_babchuk@epam.com>
Tue, 29 Apr 2025 09:54:59 +0000 (11:54 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 29 Apr 2025 09:54:59 +0000 (11:54 +0200)
While building xen with GCC 14.2.1 with "-fcondition-coverage" option
or with "-Og", the compiler produces a false positive warning:

  arch/x86/irq.c: In function ‘create_irq’:
  arch/x86/irq.c:281:11: error: ‘desc’ may be used uninitialized [-Werror=maybe-uninitialized]
    281 |     ret = init_one_irq_desc(desc);
        |           ^~~~~~~~~~~~~~~~~~~~~~~
  arch/x86/irq.c:269:22: note: ‘desc’ was declared here
    269 |     struct irq_desc *desc;
        |                      ^~~~
  cc1: all warnings being treated as errors
  make[2]: *** [Rules.mk:252: arch/x86/irq.o] Error 1

While we have signed/unsigned comparison both in "for" loop and in
"if" statement, this still can't lead to use of uninitialized "desc",
as either loop will be executed at least once, or the function will
return early. So this is a clearly false positive warning due to a
bug [1] in GCC.

Initialize "desc" with NULL to make GCC happy.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119665

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
master commit: 7a4484d90b3003171f1700e424ad45b931200ba6
master date: 2025-04-08 09:40:39 +0200

xen/arch/x86/irq.c

index 0001e93ba8ac7b6e3531adf5d8f2ed4b681c4fa7..ce390b04226ffd07e153f3a0fbbeef7ffae68adf 100644 (file)
@@ -261,7 +261,7 @@ void __init clear_irq_vector(int irq)
 int create_irq(nodeid_t node, bool grant_access)
 {
     int irq, ret;
-    struct irq_desc *desc;
+    struct irq_desc *desc = NULL ; /* gcc14 -Og or -fcondition-coverage */
 
     for (irq = nr_irqs_gsi; irq < nr_irqs; irq++)
     {