Re: [PATCH v1 1/2] mfd: intel_quark_i2c_gpio: remove clock tree on error path

From: Andy Shevchenko
Date: Fri Feb 19 2016 - 03:12:32 EST


On Fri, Feb 19, 2016 at 4:45 AM, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> wrote:
> On 02/17, Andy Shevchenko wrote:
>> diff --git a/drivers/mfd/intel_quark_i2c_gpio.c b/drivers/mfd/intel_quark_i2c_gpio.c
>> index bdc5e27..43d8066 100644
>> --- a/drivers/mfd/intel_quark_i2c_gpio.c
>> +++ b/drivers/mfd/intel_quark_i2c_gpio.c
>> @@ -150,11 +150,10 @@ static void intel_quark_unregister_i2c_clk(struct pci_dev *pdev)
>> {
>> struct intel_quark_mfd *quark_mfd = dev_get_drvdata(&pdev->dev);
>>
>> - if (!quark_mfd->i2c_clk || !quark_mfd->i2c_clk_lookup)
>> + clk_unregister(quark_mfd->i2c_clk);
>> + if (!quark_mfd->i2c_clk_lookup)
>> return;
>> -
>> clkdev_drop(quark_mfd->i2c_clk_lookup);
>
> It's probably not a great idea to unregister the clk before the
> lookup is dropped. I suppose nothing too bad will happen though
> because we handle this case in the framework and substitute dummy
> ops in place of the real ones.

Thanks for pointing this out.

Okay, I will re-do this. I think the correct one is to add
clk_unregister() call to the _register_i2c_clk().



--
With Best Regards,
Andy Shevchenko