From 4e7c9494037aa19f54c93a8c080077deda615f73 Mon Sep 17 00:00:00 2001 From: Volodymyr Babchuk Date: Tue, 29 Apr 2025 12:07:53 +0200 Subject: [PATCH] xen: x86: irq: initialize irq desc in create_irq() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Jan Beulich master commit: 7a4484d90b3003171f1700e424ad45b931200ba6 master date: 2025-04-08 09:40:39 +0200 --- xen/arch/x86/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index 6b1f338eae..db2d574680 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -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++) { -- 2.39.5