[Skiboot] [PATCH] PLAT: Use NULL check instead assertion

Neelesh Gupta neelegup at linux.vnet.ibm.com
Tue Jan 20 19:58:43 AEDT 2015


On 01/20/2015 12:27 PM, Ananth N Mavinakayanahalli wrote:
> On Tue, Jan 20, 2015 at 10:01:28AM +0530, Neelesh Gupta wrote:
>> There could be some processor chips not populated in the system.
>> So, if we are not able to get chip data of given chip id, we should
>> just move on to the next or return instead of aborting (bz 120562).
>>
>> Signed-off-by: Neelesh Gupta <neelegup at linux.vnet.ibm.com>
>> ---
>>   platforms/ibm-fsp/firenze.c |   42 +++++++++++++++++++++++++-----------------
>>   1 file changed, 25 insertions(+), 17 deletions(-)
>>
>> diff --git a/platforms/ibm-fsp/firenze.c b/platforms/ibm-fsp/firenze.c
>> index d971d57..258a6b3 100644
>> --- a/platforms/ibm-fsp/firenze.c
>> +++ b/platforms/ibm-fsp/firenze.c
>> @@ -130,29 +130,37 @@ static void firenze_dt_fixup_i2cm(void)
>>   	case LX_VPD_SHARK_BACKPLANE: /* XXX confirm ? */
>>   		/* i2c nodes on chip 0x10 */
>>   		c = get_chip(0x10);
>> -		assert(c);
>> -
>> -		/* Engine 1 */
>> -		master = dt_create_i2c_master(c->devnode, 1);
>> -		assert(master);
>> -		snprintf(name, sizeof(name), "p8_%08x_e%dp%d", c->id, 1, 0);
>> -		bus = dt_create_i2c_bus(master, name, 0);
>> -		assert(bus);
>> -		dev = dt_create_i2c_device(bus, 0x39, "power-control",
>> -					   "maxim,5961", "pcie-hotplug");
>> -		assert(dev);
>> -		dt_add_property_strings(dev, "target-list", "slot-C4", "slot-C5");
>> +		if (c) {
>> +			/* Engine 1 */
>> +			master = dt_create_i2c_master(c->devnode, 1);
>> +			assert(master);
>> +			snprintf(name, sizeof(name), "p8_%08x_e%dp%d", c->id, 1, 0);
>> +			bus = dt_create_i2c_bus(master, name, 0);
>> +			assert(bus);
>> +			dev = dt_create_i2c_device(bus, 0x39, "power-control",
>> +						   "maxim,5961", "pcie-hotplug");
>> +			assert(dev);
>> +			dt_add_property_strings(dev, "target-list", "slot-C4",
>> +						"slot-C5");
>> +
>> +			dev = dt_create_i2c_device(bus, 0x3a, "power-control",
>> +						   "maxim,5961", "pcie-hotplug");
>> +			assert(dev);
>> +			dt_add_property_strings(dev, "target-list", "slot-C2",
>> +						"slot-C3");
> Should we fall through even if we find a chip?

Yes, it is happening. In either case, found/not-found (if/else) we fall 
through.

>
>> +		} else {
>> +			prlog(PR_INFO, "PLAT: Chip not found for the id 0x10\n");
>> +		}
>>   
>> -		dev = dt_create_i2c_device(bus, 0x3a, "power-control",
>> -					   "maxim,5961", "pcie-hotplug");
>> -		assert(dev);
>> -		dt_add_property_strings(dev, "target-list", "slot-C2", "slot-C3");
>>   	/* Fall through */
>>   	case LX_VPD_1S4U_BACKPLANE:
>>   	case LX_VPD_1S2U_BACKPLANE:
>>   		/* i2c nodes on chip 0 */
>>   		c = get_chip(0);
>> -		assert(c);
>> +		if (!c) {
>> +			prlog(PR_INFO, "PLAT: Chip not found for the id 0x0\n");
> Should we continue if we don't find a chip on either of the chips?

No, the function is about creating i2c nodes under a chip node 
(c->devnode), if found.

- Neelesh

>
> Ananth
>
>> +			break;
>> +		}
>>   
>>   		/* Engine 1*/
>>   		master = dt_create_i2c_master(c->devnode, 1);
>>
>> _______________________________________________
>> Skiboot mailing list
>> Skiboot at lists.ozlabs.org
>> https://lists.ozlabs.org/listinfo/skiboot



More information about the Skiboot mailing list