On Mon, Jun 06, 2022 at 12:16:22PM +0100, Marc Zyngier wrote: > > dc97fd6fec0099 Hector Martin 2022-03-10 926 switch (irqc->info.version) { > > dc97fd6fec0099 Hector Martin 2022-03-10 927 case 1: { > > dc97fd6fec0099 Hector Martin 2022-03-10 928 u32 info; > > dc97fd6fec0099 Hector Martin 2022-03-10 929 > > 76cde26394114f Hector Martin 2021-01-21 930 info = aic_ic_read(irqc, AIC_INFO); > > 7c841f5f6fa3f9 Hector Martin 2022-03-10 931 irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info); > > dc97fd6fec0099 Hector Martin 2022-03-10 932 irqc->max_irq = AIC_MAX_IRQ; > > dc97fd6fec0099 Hector Martin 2022-03-10 933 > > dc97fd6fec0099 Hector Martin 2022-03-10 934 off = irqc->info.target_cpu; > > dc97fd6fec0099 Hector Martin 2022-03-10 935 off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */ > > dc97fd6fec0099 Hector Martin 2022-03-10 936 > > dc97fd6fec0099 Hector Martin 2022-03-10 937 break; > > > > "off" uninitialized if irqc->info.version != 1. > > Which is pretty much impossible by construction, as as of this > particular commit, all the possible implementations have version == 1. > > Subsequent patches do add cases where version == 2, and that gets > covered too. > > So unless I'm missing something obvious, there is no bug here. I assumed it was something like that. The kbuild bot doesn't do cross function analysis. Neither does Clang really. regards, dan carpenter