All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] iio: adc: twl4030: Fix some  error handling issues in 'twl4030_madc_probe()'
@ 2017-09-23  6:03 ` Christophe JAILLET
  0 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:03 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

These 3 patches are all related to error hangling in 'twl4030_madc_probe()'.
They are also all related to commit 7cc97d77ee8a
("iio: adc: twl4030: Fix ADC[3:6] readings")

The semantic of the patches behing slighly different:
   - direct return instead of going through the error handling path
   - missing function in the error handling path
   - spurious pattern (IMO) if unable to enable a regulator
I have splitted them in 3 parts.

Christophe JAILLET (3):
  iio: adc: twl4030: Fix an error handling path in
    'twl4030_madc_probe()'
  iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling
    path of 'twl4030_madc_probe()'
  iio: adc: twl4030: Return an error if we can not enable the vusb3v1
    regulator in 'twl4030_madc_probe()'

 drivers/iio/adc/twl4030-madc.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 0/3] iio: adc: twl4030: Fix some  error handling issues in 'twl4030_madc_probe()'
@ 2017-09-23  6:03 ` Christophe JAILLET
  0 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:03 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

These 3 patches are all related to error hangling in 'twl4030_madc_probe()'.
They are also all related to commit 7cc97d77ee8a
("iio: adc: twl4030: Fix ADC[3:6] readings")

The semantic of the patches behing slighly different:
   - direct return instead of going through the error handling path
   - missing function in the error handling path
   - spurious pattern (IMO) if unable to enable a regulator
I have splitted them in 3 parts.

Christophe JAILLET (3):
  iio: adc: twl4030: Fix an error handling path in
    'twl4030_madc_probe()'
  iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling
    path of 'twl4030_madc_probe()'
  iio: adc: twl4030: Return an error if we can not enable the vusb3v1
    regulator in 'twl4030_madc_probe()'

 drivers/iio/adc/twl4030-madc.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
  2017-09-23  6:03 ` Christophe JAILLET
@ 2017-09-23  6:06   ` Christophe JAILLET
  -1 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:06 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

If 'devm_regulator_get()' fails, we should go through the existing error
handling path instead of returning directly, as done is all the other
error handling paths in this function.

Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/iio/adc/twl4030-madc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 1edd99f0c5e5..80ab2ed70b85 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -887,8 +887,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 
 	/* Enable 3v1 bias regulator for MADC[3:6] */
 	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
-	if (IS_ERR(madc->usb3v1))
-		return -ENODEV;
+	if (IS_ERR(madc->usb3v1)) {
+		ret = -ENODEV;
+		goto err_i2c;
+	}
 
 	ret = regulator_enable(madc->usb3v1);
 	if (ret)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
@ 2017-09-23  6:06   ` Christophe JAILLET
  0 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:06 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

If 'devm_regulator_get()' fails, we should go through the existing error
handling path instead of returning directly, as done is all the other
error handling paths in this function.

Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/iio/adc/twl4030-madc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 1edd99f0c5e5..80ab2ed70b85 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -887,8 +887,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 
 	/* Enable 3v1 bias regulator for MADC[3:6] */
 	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
-	if (IS_ERR(madc->usb3v1))
-		return -ENODEV;
+	if (IS_ERR(madc->usb3v1)) {
+		ret = -ENODEV;
+		goto err_i2c;
+	}
 
 	ret = regulator_enable(madc->usb3v1);
 	if (ret)
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_madc_probe()'
  2017-09-23  6:06   ` Christophe JAILLET
@ 2017-09-23  6:06   ` Christophe JAILLET
  -1 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:06 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

Commit 7cc97d77ee8a has introduced a call to 'regulator_disable()' in the
.remove function.
So we should also have such a call in the .probe function in case of
error after a successful 'regulator_enable()' call.

Add a new label for that and use it.

Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/iio/adc/twl4030-madc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 80ab2ed70b85..32db23d9a483 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -899,11 +899,13 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 	ret = iio_device_register(iio_dev);
 	if (ret) {
 		dev_err(&pdev->dev, "could not register iio device\n");
-		goto err_i2c;
+		goto err_usb3v1;
 	}
 
 	return 0;
 
+err_usb3v1:
+	regulator_disable(madc->usb3v1);
 err_i2c:
 	twl4030_madc_set_current_generator(madc, 0, 0);
 err_current_generator:
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_
@ 2017-09-23  6:06   ` Christophe JAILLET
  0 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:06 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

Commit 7cc97d77ee8a has introduced a call to 'regulator_disable()' in the
.remove function.
So we should also have such a call in the .probe function in case of
error after a successful 'regulator_enable()' call.

Add a new label for that and use it.

Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/iio/adc/twl4030-madc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 80ab2ed70b85..32db23d9a483 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -899,11 +899,13 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 	ret = iio_device_register(iio_dev);
 	if (ret) {
 		dev_err(&pdev->dev, "could not register iio device\n");
-		goto err_i2c;
+		goto err_usb3v1;
 	}
 
 	return 0;
 
+err_usb3v1:
+	regulator_disable(madc->usb3v1);
 err_i2c:
 	twl4030_madc_set_current_generator(madc, 0, 0);
 err_current_generator:
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl4030_madc_probe()'
  2017-09-23  6:06   ` Christophe JAILLET
@ 2017-09-23  6:06   ` Christophe JAILLET
  -1 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:06 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

If we can not enable the regulator, go through the error handling path
instead of silently continuing.

Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
This patch is highly speculative.
I don't find logical to return an error if we don't find the 'vusb3v1'
regulator, but continue if we find it, but can't enable it.
Returning an error if both cases (i.e. failing 'devm_regulator_get()' or
'regulator_enable)' seems the usual pattern in all the .probe functions
with a 'regulator_enable()' call have looked at (~ 10 of them taken
randomly)
---
 drivers/iio/adc/twl4030-madc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 32db23d9a483..e3cfb91bffc6 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -893,8 +893,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 	}
 
 	ret = regulator_enable(madc->usb3v1);
-	if (ret)
+	if (ret) {
 		dev_err(madc->dev, "could not enable 3v1 bias regulator\n");
+		goto err_i2c;
+	}
 
 	ret = iio_device_register(iio_dev);
 	if (ret) {
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403
@ 2017-09-23  6:06   ` Christophe JAILLET
  0 siblings, 0 replies; 14+ messages in thread
From: Christophe JAILLET @ 2017-09-23  6:06 UTC (permalink / raw)
  To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
  Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET

If we can not enable the regulator, go through the error handling path
instead of silently continuing.

Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
This patch is highly speculative.
I don't find logical to return an error if we don't find the 'vusb3v1'
regulator, but continue if we find it, but can't enable it.
Returning an error if both cases (i.e. failing 'devm_regulator_get()' or
'regulator_enable)' seems the usual pattern in all the .probe functions
with a 'regulator_enable()' call have looked at (~ 10 of them taken
randomly)
---
 drivers/iio/adc/twl4030-madc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 32db23d9a483..e3cfb91bffc6 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -893,8 +893,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 	}
 
 	ret = regulator_enable(madc->usb3v1);
-	if (ret)
+	if (ret) {
 		dev_err(madc->dev, "could not enable 3v1 bias regulator\n");
+		goto err_i2c;
+	}
 
 	ret = iio_device_register(iio_dev);
 	if (ret) {
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
  2017-09-23  6:06   ` Christophe JAILLET
@ 2017-09-24 11:58     ` Jonathan Cameron
  -1 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2017-09-24 11:58 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
	linux-kernel, kernel-janitors

On Sat, 23 Sep 2017 08:06:18 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> If 'devm_regulator_get()' fails, we should go through the existing error
> handling path instead of returning directly, as done is all the other
> error handling paths in this function.
> 
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Applied to the fixes-togreg-post-rc1 branch of iio.git and marked
for stable. 

Thanks,

Jonathan
> ---
>  drivers/iio/adc/twl4030-madc.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 1edd99f0c5e5..80ab2ed70b85 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -887,8 +887,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>  
>  	/* Enable 3v1 bias regulator for MADC[3:6] */
>  	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
> -	if (IS_ERR(madc->usb3v1))
> -		return -ENODEV;
> +	if (IS_ERR(madc->usb3v1)) {
> +		ret = -ENODEV;
> +		goto err_i2c;
> +	}
>  
>  	ret = regulator_enable(madc->usb3v1);
>  	if (ret)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
@ 2017-09-24 11:58     ` Jonathan Cameron
  0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2017-09-24 11:58 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
	linux-kernel, kernel-janitors

On Sat, 23 Sep 2017 08:06:18 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> If 'devm_regulator_get()' fails, we should go through the existing error
> handling path instead of returning directly, as done is all the other
> error handling paths in this function.
> 
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Applied to the fixes-togreg-post-rc1 branch of iio.git and marked
for stable. 

Thanks,

Jonathan
> ---
>  drivers/iio/adc/twl4030-madc.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 1edd99f0c5e5..80ab2ed70b85 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -887,8 +887,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>  
>  	/* Enable 3v1 bias regulator for MADC[3:6] */
>  	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
> -	if (IS_ERR(madc->usb3v1))
> -		return -ENODEV;
> +	if (IS_ERR(madc->usb3v1)) {
> +		ret = -ENODEV;
> +		goto err_i2c;
> +	}
>  
>  	ret = regulator_enable(madc->usb3v1);
>  	if (ret)


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_madc_probe()'
  2017-09-23  6:06   ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_ Christophe JAILLET
@ 2017-09-24 12:00     ` Jonathan Cameron
  -1 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2017-09-24 12:00 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
	linux-kernel, kernel-janitors

On Sat, 23 Sep 2017 08:06:19 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> Commit 7cc97d77ee8a has introduced a call to 'regulator_disable()' in the
> .remove function.
> So we should also have such a call in the .probe function in case of
> error after a successful 'regulator_enable()' call.
> 
> Add a new label for that and use it.
> 
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Applied to the fixes-togreg-post-rc1 branch of iio.git and marked
for stable.

Thanks,

Jonathan
> ---
>  drivers/iio/adc/twl4030-madc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 80ab2ed70b85..32db23d9a483 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -899,11 +899,13 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>  	ret = iio_device_register(iio_dev);
>  	if (ret) {
>  		dev_err(&pdev->dev, "could not register iio device\n");
> -		goto err_i2c;
> +		goto err_usb3v1;
>  	}
>  
>  	return 0;
>  
> +err_usb3v1:
> +	regulator_disable(madc->usb3v1);
>  err_i2c:
>  	twl4030_madc_set_current_generator(madc, 0, 0);
>  err_current_generator:

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4
@ 2017-09-24 12:00     ` Jonathan Cameron
  0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2017-09-24 12:00 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
	linux-kernel, kernel-janitors

On Sat, 23 Sep 2017 08:06:19 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> Commit 7cc97d77ee8a has introduced a call to 'regulator_disable()' in the
> .remove function.
> So we should also have such a call in the .probe function in case of
> error after a successful 'regulator_enable()' call.
> 
> Add a new label for that and use it.
> 
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Applied to the fixes-togreg-post-rc1 branch of iio.git and marked
for stable.

Thanks,

Jonathan
> ---
>  drivers/iio/adc/twl4030-madc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 80ab2ed70b85..32db23d9a483 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -899,11 +899,13 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>  	ret = iio_device_register(iio_dev);
>  	if (ret) {
>  		dev_err(&pdev->dev, "could not register iio device\n");
> -		goto err_i2c;
> +		goto err_usb3v1;
>  	}
>  
>  	return 0;
>  
> +err_usb3v1:
> +	regulator_disable(madc->usb3v1);
>  err_i2c:
>  	twl4030_madc_set_current_generator(madc, 0, 0);
>  err_current_generator:


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl4030_madc_probe()'
  2017-09-23  6:06   ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403 Christophe JAILLET
@ 2017-09-24 12:05     ` Jonathan Cameron
  -1 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2017-09-24 12:05 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
	linux-kernel, kernel-janitors

On Sat, 23 Sep 2017 08:06:20 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> If we can not enable the regulator, go through the error handling path
> instead of silently continuing.
> 
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Applied to the fixes-togreg-post-rc1 branch of iio.git.

I haven't explicitly marked this one for stable as it isn't broken
as such, just inconsistent.

Thanks,

Jonathan
> ---
> This patch is highly speculative.
> I don't find logical to return an error if we don't find the 'vusb3v1'
> regulator, but continue if we find it, but can't enable it.
> Returning an error if both cases (i.e. failing 'devm_regulator_get()' or
> 'regulator_enable)' seems the usual pattern in all the .probe functions
> with a 'regulator_enable()' call have looked at (~ 10 of them taken
> randomly)
> ---
>  drivers/iio/adc/twl4030-madc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 32db23d9a483..e3cfb91bffc6 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -893,8 +893,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>  	}
>  
>  	ret = regulator_enable(madc->usb3v1);
> -	if (ret)
> +	if (ret) {
>  		dev_err(madc->dev, "could not enable 3v1 bias regulator\n");
> +		goto err_i2c;
> +	}
>  
>  	ret = iio_device_register(iio_dev);
>  	if (ret) {

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'tw
@ 2017-09-24 12:05     ` Jonathan Cameron
  0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2017-09-24 12:05 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
	linux-kernel, kernel-janitors

On Sat, 23 Sep 2017 08:06:20 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> If we can not enable the regulator, go through the error handling path
> instead of silently continuing.
> 
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Applied to the fixes-togreg-post-rc1 branch of iio.git.

I haven't explicitly marked this one for stable as it isn't broken
as such, just inconsistent.

Thanks,

Jonathan
> ---
> This patch is highly speculative.
> I don't find logical to return an error if we don't find the 'vusb3v1'
> regulator, but continue if we find it, but can't enable it.
> Returning an error if both cases (i.e. failing 'devm_regulator_get()' or
> 'regulator_enable)' seems the usual pattern in all the .probe functions
> with a 'regulator_enable()' call have looked at (~ 10 of them taken
> randomly)
> ---
>  drivers/iio/adc/twl4030-madc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 32db23d9a483..e3cfb91bffc6 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -893,8 +893,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>  	}
>  
>  	ret = regulator_enable(madc->usb3v1);
> -	if (ret)
> +	if (ret) {
>  		dev_err(madc->dev, "could not enable 3v1 bias regulator\n");
> +		goto err_i2c;
> +	}
>  
>  	ret = iio_device_register(iio_dev);
>  	if (ret) {


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2017-09-24 12:05 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-23  6:03 [PATCH 0/3] iio: adc: twl4030: Fix some error handling issues in 'twl4030_madc_probe()' Christophe JAILLET
2017-09-23  6:03 ` Christophe JAILLET
2017-09-23  6:06 ` [PATCH 1/3] iio: adc: twl4030: Fix an error handling path " Christophe JAILLET
2017-09-23  6:06   ` Christophe JAILLET
2017-09-24 11:58   ` Jonathan Cameron
2017-09-24 11:58     ` Jonathan Cameron
2017-09-23  6:06 ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_madc_probe()' Christophe JAILLET
2017-09-23  6:06   ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_ Christophe JAILLET
2017-09-24 12:00   ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_madc_probe()' Jonathan Cameron
2017-09-24 12:00     ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4 Jonathan Cameron
2017-09-23  6:06 ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl4030_madc_probe()' Christophe JAILLET
2017-09-23  6:06   ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403 Christophe JAILLET
2017-09-24 12:05   ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl4030_madc_probe()' Jonathan Cameron
2017-09-24 12:05     ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'tw Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.