Re: [PATCH] media: tw9910: add missed clk_disable_unprepare() on failure path

From: Alexey Khoroshilov
Date: Sun Dec 30 2018 - 06:18:41 EST


Hi Jacopo,

On 30.12.2018 12:49, Jacopo Mondi wrote:
> On Sun, Dec 30, 2018 at 12:35:20AM +0300, Alexey Khoroshilov wrote:
>> If gpiod_get_optional() fails in tw9910_power_on(), clk is left undisabled.
>
> Correct, thanks for spotting this.
>
> I think pdn_gpio should also be handled if rstb_gpio fails.
> What's your opinion?

I would agree. I'll send v2.

Thank you,
Alexey

>
>> Found by Linux Driver Verification project (linuxtesting.org).
>>
>> Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>
>> ---
>> drivers/media/i2c/tw9910.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/media/i2c/tw9910.c b/drivers/media/i2c/tw9910.c
>> index a54548cc4285..109770d678d2 100644
>> --- a/drivers/media/i2c/tw9910.c
>> +++ b/drivers/media/i2c/tw9910.c
>> @@ -610,6 +610,7 @@ static int tw9910_power_on(struct tw9910_priv *priv)
>> GPIOD_OUT_LOW);
>> if (IS_ERR(priv->rstb_gpio)) {
>> dev_info(&client->dev, "Unable to get GPIO \"rstb\"");
>> + clk_disable_unprepare(priv->clk);
>> return PTR_ERR(priv->rstb_gpio);
>> }
>>
>> --
>> 2.7.4
>>