[PATCH] powerpc/xive: Initialize symbol before usage

Michael Ellerman mpe at ellerman.id.au
Thu Aug 23 22:25:36 AEST 2018


Cédric Le Goater <clg at kaod.org> writes:
> On 08/23/2018 05:24 AM, Michael Ellerman wrote:
>> Breno Leitao <leitao at 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


More information about the Linuxppc-dev mailing list