Message ID | 1535066799-8493-1-git-send-email-leitao@debian.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 8ac9e5bfd8cf41ef106ac97267117e5209627c74 |
Headers | show |
Series | [v2] powerpc/xive: Avoid unitialized variable | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | next/apply_patch Successfully applied |
snowpatch_ozlabs/checkpatch | warning | Test checkpatch on branch next |
snowpatch_ozlabs/build-ppc64le | success | Test build-ppc64le on branch next |
snowpatch_ozlabs/build-ppc64be | success | Test build-ppc64be on branch next |
snowpatch_ozlabs/build-ppc64e | success | Test build-ppc64e on branch next |
snowpatch_ozlabs/build-ppc32 | success | Test build-ppc32 on branch next |
On 08/24/2018 01:26 AM, Breno Leitao wrote: > From: Breno Leitao <breno.leitao@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 <clg@kaod.org> > Signed-off-by: Breno Leitao <leitao@debian.org> Reviewed-by: Cédric Le Goater <clg@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; >
On Thu, 2018-08-23 at 23:26:39 UTC, Breno Leitao wrote: > From: Breno Leitao <breno.leitao@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 <clg@kaod.org> > Signed-off-by: Breno Leitao <leitao@debian.org> > Reviewed-by: Cédric Le Goater <clg@kaod.org> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/8ac9e5bfd8cf41ef106ac97267117e cheers
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;