diff mbox series

[-next] iio: frequency: adf4350: disable reg and clk on error in adf4350_probe()

Message ID 20210601142605.3613605-1-yangyingliang@huawei.com (mailing list archive)
State Accepted, archived
Headers show
Series [-next] iio: frequency: adf4350: disable reg and clk on error in adf4350_probe() | expand

Commit Message

Yang Yingliang June 1, 2021, 2:26 p.m. UTC
Disable reg and clk when devm_gpiod_get_optional() fails in adf4350_probe().

Fixes:4a89d2f47ccd ("iio: adf4350: Convert to use GPIO descriptor")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
---
 drivers/iio/frequency/adf4350.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Jonathan Cameron June 3, 2021, 4:18 p.m. UTC | #1
On Tue, 1 Jun 2021 22:26:05 +0800
Yang Yingliang <yangyingliang@huawei.com> wrote:

> Disable reg and clk when devm_gpiod_get_optional() fails in adf4350_probe().

Hi.

One small thing. It would be useful if you could check if the bug exists other
than in next (this one has been their for some time!)  If it does, please
don't add the -next in the patch title (as basically it makes me not worry
about reading it for a few days :)

Also, make sure to cc the author of the patch in the fixes tag
+CC Linus

Obvious enough fix (I hope) that I've applied it to the fixes-togreg branch of
iio.git and marked for stable.

Thanks,

Jonathan

> 
> Fixes:4a89d2f47ccd ("iio: adf4350: Convert to use GPIO descriptor")
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---
>  drivers/iio/frequency/adf4350.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> index 1462a6a5bc6d..3d9eba716b69 100644
> --- a/drivers/iio/frequency/adf4350.c
> +++ b/drivers/iio/frequency/adf4350.c
> @@ -563,8 +563,10 @@ static int adf4350_probe(struct spi_device *spi)
>  
>  	st->lock_detect_gpiod = devm_gpiod_get_optional(&spi->dev, NULL,
>  							GPIOD_IN);
> -	if (IS_ERR(st->lock_detect_gpiod))
> -		return PTR_ERR(st->lock_detect_gpiod);
> +	if (IS_ERR(st->lock_detect_gpiod)) {
> +		ret = PTR_ERR(st->lock_detect_gpiod);
> +		goto error_disable_reg;
> +	}
>  
>  	if (pdata->power_up_frequency) {
>  		ret = adf4350_set_freq(st, pdata->power_up_frequency);
Yang Yingliang June 4, 2021, 1:35 a.m. UTC | #2
On 2021/6/4 0:18, Jonathan Cameron wrote:
> On Tue, 1 Jun 2021 22:26:05 +0800
> Yang Yingliang <yangyingliang@huawei.com> wrote:
>
>> Disable reg and clk when devm_gpiod_get_optional() fails in adf4350_probe().
> Hi.
>
> One small thing. It would be useful if you could check if the bug exists other
> than in next (this one has been their for some time!)  If it does, please
> don't add the -next in the patch title (as basically it makes me not worry
> about reading it for a few days :)
>
> Also, make sure to cc the author of the patch in the fixes tag
> +CC Linus
OK

Thanks,
Yang
>
> Obvious enough fix (I hope) that I've applied it to the fixes-togreg branch of
> iio.git and marked for stable.
>
> Thanks,
>
> Jonathan
>
>> Fixes:4a89d2f47ccd ("iio: adf4350: Convert to use GPIO descriptor")
>> Reported-by: Hulk Robot <hulkci@huawei.com>
>> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
>> ---
>>   drivers/iio/frequency/adf4350.c | 6 ++++--
>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
>> index 1462a6a5bc6d..3d9eba716b69 100644
>> --- a/drivers/iio/frequency/adf4350.c
>> +++ b/drivers/iio/frequency/adf4350.c
>> @@ -563,8 +563,10 @@ static int adf4350_probe(struct spi_device *spi)
>>   
>>   	st->lock_detect_gpiod = devm_gpiod_get_optional(&spi->dev, NULL,
>>   							GPIOD_IN);
>> -	if (IS_ERR(st->lock_detect_gpiod))
>> -		return PTR_ERR(st->lock_detect_gpiod);
>> +	if (IS_ERR(st->lock_detect_gpiod)) {
>> +		ret = PTR_ERR(st->lock_detect_gpiod);
>> +		goto error_disable_reg;
>> +	}
>>   
>>   	if (pdata->power_up_frequency) {
>>   		ret = adf4350_set_freq(st, pdata->power_up_frequency);
> .
Linus Walleij June 4, 2021, 7:57 a.m. UTC | #3
On Tue, Jun 1, 2021 at 4:21 PM Yang Yingliang <yangyingliang@huawei.com> wrote:

> Disable reg and clk when devm_gpiod_get_optional() fails in adf4350_probe().
>
> Fixes:4a89d2f47ccd ("iio: adf4350: Convert to use GPIO descriptor")
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
Jonathan Cameron June 11, 2021, 5:30 p.m. UTC | #4
On Fri, 4 Jun 2021 09:35:49 +0800
Yang Yingliang <yangyingliang@huawei.com> wrote:

> On 2021/6/4 0:18, Jonathan Cameron wrote:
> > On Tue, 1 Jun 2021 22:26:05 +0800
> > Yang Yingliang <yangyingliang@huawei.com> wrote:
> >  
> >> Disable reg and clk when devm_gpiod_get_optional() fails in adf4350_probe().  
> > Hi.
> >
> > One small thing. It would be useful if you could check if the bug exists other
> > than in next (this one has been their for some time!)  If it does, please
> > don't add the -next in the patch title (as basically it makes me not worry
> > about reading it for a few days :)
> >
> > Also, make sure to cc the author of the patch in the fixes tag
> > +CC Linus  
> OK
> 
> Thanks,
> Yang
Hi Yang,

Change of plan on this one as we are late in the cycle and I don't have
any urgent fixes queued up.  I'm moving over to the togreg branch of iio.git
and lining it up for the current merge window.

Thanks,

Jonathan

> >
> > Obvious enough fix (I hope) that I've applied it to the fixes-togreg branch of
> > iio.git and marked for stable.
> >
> > Thanks,
> >
> > Jonathan
> >  
> >> Fixes:4a89d2f47ccd ("iio: adf4350: Convert to use GPIO descriptor")
> >> Reported-by: Hulk Robot <hulkci@huawei.com>
> >> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> >> ---
> >>   drivers/iio/frequency/adf4350.c | 6 ++++--
> >>   1 file changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
> >> index 1462a6a5bc6d..3d9eba716b69 100644
> >> --- a/drivers/iio/frequency/adf4350.c
> >> +++ b/drivers/iio/frequency/adf4350.c
> >> @@ -563,8 +563,10 @@ static int adf4350_probe(struct spi_device *spi)
> >>   
> >>   	st->lock_detect_gpiod = devm_gpiod_get_optional(&spi->dev, NULL,
> >>   							GPIOD_IN);
> >> -	if (IS_ERR(st->lock_detect_gpiod))
> >> -		return PTR_ERR(st->lock_detect_gpiod);
> >> +	if (IS_ERR(st->lock_detect_gpiod)) {
> >> +		ret = PTR_ERR(st->lock_detect_gpiod);
> >> +		goto error_disable_reg;
> >> +	}
> >>   
> >>   	if (pdata->power_up_frequency) {
> >>   		ret = adf4350_set_freq(st, pdata->power_up_frequency);  
> > .
diff mbox series

Patch

diff --git a/drivers/iio/frequency/adf4350.c b/drivers/iio/frequency/adf4350.c
index 1462a6a5bc6d..3d9eba716b69 100644
--- a/drivers/iio/frequency/adf4350.c
+++ b/drivers/iio/frequency/adf4350.c
@@ -563,8 +563,10 @@  static int adf4350_probe(struct spi_device *spi)
 
 	st->lock_detect_gpiod = devm_gpiod_get_optional(&spi->dev, NULL,
 							GPIOD_IN);
-	if (IS_ERR(st->lock_detect_gpiod))
-		return PTR_ERR(st->lock_detect_gpiod);
+	if (IS_ERR(st->lock_detect_gpiod)) {
+		ret = PTR_ERR(st->lock_detect_gpiod);
+		goto error_disable_reg;
+	}
 
 	if (pdata->power_up_frequency) {
 		ret = adf4350_set_freq(st, pdata->power_up_frequency);