On 08/24/2018 01:26 AM, Breno Leitao wrote: > From: Breno Leitao <breno.lei...@gmail.com> > > Function xive_native_get_ipi() might uses chip_id without it being > initialized. > > This gives the following error on 'smatch' tool: > > error: uninitialized symbol 'chip_id' > > The suggestion is using xc->chip_id instead of consulting the OF for chip id, > which is safe since xive_prepare_cpu() should have initialized ->chip_id by > the time xive_native_get_ipi() is called. > > CC: Cédric Le Goater <c...@kaod.org> > Signed-off-by: Breno Leitao <lei...@debian.org>
Reviewed-by: Cédric Le Goater <c...@kaod.org> Thanks, C. > --- > arch/powerpc/sysdev/xive/native.c | 11 +---------- > 1 file changed, 1 insertion(+), 10 deletions(-) > > diff --git a/arch/powerpc/sysdev/xive/native.c > b/arch/powerpc/sysdev/xive/native.c > index 311185b9960a..bd90fd464a3a 100644 > --- a/arch/powerpc/sysdev/xive/native.c > +++ b/arch/powerpc/sysdev/xive/native.c > @@ -238,20 +238,11 @@ static bool xive_native_match(struct device_node *node) > #ifdef CONFIG_SMP > static int xive_native_get_ipi(unsigned int cpu, struct xive_cpu *xc) > { > - struct device_node *np; > - unsigned int chip_id; > s64 irq; > > - /* Find the chip ID */ > - np = of_get_cpu_node(cpu, NULL); > - if (np) { > - if (of_property_read_u32(np, "ibm,chip-id", &chip_id) < 0) > - chip_id = 0; > - } > - > /* Allocate an IPI and populate info about it */ > for (;;) { > - irq = opal_xive_allocate_irq(chip_id); > + irq = opal_xive_allocate_irq(xc->chip_id); > if (irq == OPAL_BUSY) { > msleep(1); > continue; >