Cédric Le Goater <c...@kaod.org> writes: > On 08/23/2018 05:24 AM, Michael Ellerman wrote: >> Breno Leitao <lei...@debian.org> writes: >>> diff --git a/arch/powerpc/sysdev/xive/native.c >>> b/arch/powerpc/sysdev/xive/native.c >>> index 311185b9960a..fc56673a3c0f 100644 >>> --- a/arch/powerpc/sysdev/xive/native.c >>> +++ b/arch/powerpc/sysdev/xive/native.c >>> @@ -239,7 +239,7 @@ static bool xive_native_match(struct device_node *node) >>> static int xive_native_get_ipi(unsigned int cpu, struct xive_cpu *xc) >>> { >>> struct device_node *np; >>> - unsigned int chip_id; >>> + unsigned int chip_id = 0; >>> s64 irq; >>> >>> /* Find the chip ID */ >> >> The current code is: >> >> /* 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; >> } >> >> Where if np is NULL then we don't initialise chip_id. >> >> Which could be: >> >> np = of_get_cpu_node(cpu, NULL); >> if (of_property_read_u32(np, "ibm,chip-id", &chip_id) < 0) >> chip_id = 0; >> >> Because of_property_read_u32() will just return an error if np is NULL. >> >> It's also missing an of_node_put() of np, you should do a separate patch >> to fix that. You can just do it unconditionally after the >> of_property_read_u32(). > > I think we can simply get rid of the OF code under xive_native_get_ipi() > and use xc->chip_id instead. It should be safe to use as xive_prepare_cpu() > should have initialized ->chip_id by the time xive_native_get_ipi() is > called.
Even better! cheers