diff mbox

iio: adc: aspeed: Fix error handling path

Message ID 20180108064736.15991-1-christophe.jaillet@wanadoo.fr (mailing list archive)
State New, archived
Headers show

Commit Message

Christophe JAILLET Jan. 8, 2018, 6:47 a.m. UTC
The labels and branching order of the error path of 'aspeed_adc_probe()'
are broken.
Re-order the labels and goto statements.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Not sure where it comes from.
Merge conflict incorrectly fixed?
---
 drivers/iio/adc/aspeed_adc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Jonathan Cameron Jan. 14, 2018, 11:03 a.m. UTC | #1
On Mon,  8 Jan 2018 07:47:36 +0100
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> The labels and branching order of the error path of 'aspeed_adc_probe()'
> are broken.
> Re-order the labels and goto statements.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

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

The patch doesn't apply that far back so I'm going to assume
you are right and that it was a merge conflict that went wrong.

Anyhow, will go in sometime after rc1.

Thanks,

Jonathan

> ---
> Not sure where it comes from.
> Merge conflict incorrectly fixed?
> ---
>  drivers/iio/adc/aspeed_adc.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/adc/aspeed_adc.c b/drivers/iio/adc/aspeed_adc.c
> index 327a49ba1991..9515ca165dfd 100644
> --- a/drivers/iio/adc/aspeed_adc.c
> +++ b/drivers/iio/adc/aspeed_adc.c
> @@ -243,7 +243,7 @@ static int aspeed_adc_probe(struct platform_device *pdev)
>  					 ASPEED_ADC_INIT_POLLING_TIME,
>  					 ASPEED_ADC_INIT_TIMEOUT);
>  		if (ret)
> -			goto scaler_error;
> +			goto poll_timeout_error;
>  	}
>  
>  	/* Start all channels in normal mode. */
> @@ -274,9 +274,10 @@ static int aspeed_adc_probe(struct platform_device *pdev)
>  	writel(ASPEED_OPERATION_MODE_POWER_DOWN,
>  		data->base + ASPEED_REG_ENGINE_CONTROL);
>  	clk_disable_unprepare(data->clk_scaler->clk);
> -reset_error:
> -	reset_control_assert(data->rst);
>  clk_enable_error:
> +poll_timeout_error:
> +	reset_control_assert(data->rst);
> +reset_error:
>  	clk_hw_unregister_divider(data->clk_scaler);
>  scaler_error:
>  	clk_hw_unregister_divider(data->clk_prescaler);

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/iio/adc/aspeed_adc.c b/drivers/iio/adc/aspeed_adc.c
index 327a49ba1991..9515ca165dfd 100644
--- a/drivers/iio/adc/aspeed_adc.c
+++ b/drivers/iio/adc/aspeed_adc.c
@@ -243,7 +243,7 @@  static int aspeed_adc_probe(struct platform_device *pdev)
 					 ASPEED_ADC_INIT_POLLING_TIME,
 					 ASPEED_ADC_INIT_TIMEOUT);
 		if (ret)
-			goto scaler_error;
+			goto poll_timeout_error;
 	}
 
 	/* Start all channels in normal mode. */
@@ -274,9 +274,10 @@  static int aspeed_adc_probe(struct platform_device *pdev)
 	writel(ASPEED_OPERATION_MODE_POWER_DOWN,
 		data->base + ASPEED_REG_ENGINE_CONTROL);
 	clk_disable_unprepare(data->clk_scaler->clk);
-reset_error:
-	reset_control_assert(data->rst);
 clk_enable_error:
+poll_timeout_error:
+	reset_control_assert(data->rst);
+reset_error:
 	clk_hw_unregister_divider(data->clk_scaler);
 scaler_error:
 	clk_hw_unregister_divider(data->clk_prescaler);