diff mbox

[2/2] thermal: db8500: Fix missing mutex_unlock() in probe error paths

Message ID 1363103009.3160.3.camel@phoenix (mailing list archive)
State Accepted, archived
Delegated to: Zhang Rui
Headers show

Commit Message

Axel Lin March 12, 2013, 3:43 p.m. UTC
Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/thermal/db8500_thermal.c |   17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

Comments

Hongbo Zhang March 13, 2013, 8:13 a.m. UTC | #1
On 12 March 2013 23:43, Axel Lin <axel.lin@ingics.com> wrote:

It is better to say some commit message here I think.

> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> ---
>  drivers/thermal/db8500_thermal.c |   17 +++++++++++------
>  1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/thermal/db8500_thermal.c b/drivers/thermal/db8500_thermal.c
> index 6bdcec4..1e3b3bf 100644
> --- a/drivers/thermal/db8500_thermal.c
> +++ b/drivers/thermal/db8500_thermal.c
> @@ -419,7 +419,8 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>         low_irq = platform_get_irq_byname(pdev, "IRQ_HOTMON_LOW");
>         if (low_irq < 0) {
>                 dev_err(&pdev->dev, "Get IRQ_HOTMON_LOW failed.\n");
> -               return low_irq;
> +               ret = low_irq;
> +               goto out_unlock;
>         }
>
>         ret = devm_request_threaded_irq(&pdev->dev, low_irq, NULL,
> @@ -427,13 +428,14 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>                 "dbx500_temp_low", pzone);
>         if (ret < 0) {
>                 dev_err(&pdev->dev, "Failed to allocate temp low irq.\n");
> -               return ret;
> +               goto out_unlock;
>         }
>
>         high_irq = platform_get_irq_byname(pdev, "IRQ_HOTMON_HIGH");
>         if (high_irq < 0) {
>                 dev_err(&pdev->dev, "Get IRQ_HOTMON_HIGH failed.\n");
> -               return high_irq;
> +               ret = high_irq;
> +               goto out_unlock;
>         }
>
>         ret = devm_request_threaded_irq(&pdev->dev, high_irq, NULL,
> @@ -441,7 +443,7 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>                 "dbx500_temp_high", pzone);
>         if (ret < 0) {
>                 dev_err(&pdev->dev, "Failed to allocate temp high irq.\n");
> -               return ret;
> +               goto out_unlock;
>         }
>
>         pzone->therm_dev = thermal_zone_device_register("db8500_thermal_zone",
> @@ -449,7 +451,8 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>
>         if (IS_ERR(pzone->therm_dev)) {
>                 dev_err(&pdev->dev, "Register thermal zone device failed.\n");
> -               return PTR_ERR(pzone->therm_dev);
> +               ret = PTR_ERR(pzone->therm_dev);
> +               goto out_unlock;
>         }
>         dev_info(&pdev->dev, "Thermal zone device registered.\n");
>
> @@ -461,9 +464,11 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>
>         platform_set_drvdata(pdev, pzone);
>         pzone->mode = THERMAL_DEVICE_ENABLED;
> +
> +out_unlock:

This was my carelessness really, thanks.

>         mutex_unlock(&pzone->th_lock);
>
> -       return 0;
> +       return ret;
>  }
>
>  static int db8500_thermal_remove(struct platform_device *pdev)
> --
> 1.7.9.5
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Axel Lin March 13, 2013, 8:17 a.m. UTC | #2
2013/3/13 Hongbo Zhang <hongbo.zhang@linaro.org>:
> On 12 March 2013 23:43, Axel Lin <axel.lin@ingics.com> wrote:
>
> It is better to say some commit message here I think.

In this case, the subject line is *very clear* about the change.
I think it is ok to avoid duplicate the same commit message.

Regards,
Axel
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Zhang, Rui March 25, 2013, 8:09 a.m. UTC | #3
On Tue, 2013-03-12 at 23:43 +0800, Axel Lin wrote:
> Signed-off-by: Axel Lin <axel.lin@ingics.com>

applied to thermal -next.

thanks,
rui

> ---
>  drivers/thermal/db8500_thermal.c |   17 +++++++++++------
>  1 file changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/thermal/db8500_thermal.c b/drivers/thermal/db8500_thermal.c
> index 6bdcec4..1e3b3bf 100644
> --- a/drivers/thermal/db8500_thermal.c
> +++ b/drivers/thermal/db8500_thermal.c
> @@ -419,7 +419,8 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>  	low_irq = platform_get_irq_byname(pdev, "IRQ_HOTMON_LOW");
>  	if (low_irq < 0) {
>  		dev_err(&pdev->dev, "Get IRQ_HOTMON_LOW failed.\n");
> -		return low_irq;
> +		ret = low_irq;
> +		goto out_unlock;
>  	}
>  
>  	ret = devm_request_threaded_irq(&pdev->dev, low_irq, NULL,
> @@ -427,13 +428,14 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>  		"dbx500_temp_low", pzone);
>  	if (ret < 0) {
>  		dev_err(&pdev->dev, "Failed to allocate temp low irq.\n");
> -		return ret;
> +		goto out_unlock;
>  	}
>  
>  	high_irq = platform_get_irq_byname(pdev, "IRQ_HOTMON_HIGH");
>  	if (high_irq < 0) {
>  		dev_err(&pdev->dev, "Get IRQ_HOTMON_HIGH failed.\n");
> -		return high_irq;
> +		ret = high_irq;
> +		goto out_unlock;
>  	}
>  
>  	ret = devm_request_threaded_irq(&pdev->dev, high_irq, NULL,
> @@ -441,7 +443,7 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>  		"dbx500_temp_high", pzone);
>  	if (ret < 0) {
>  		dev_err(&pdev->dev, "Failed to allocate temp high irq.\n");
> -		return ret;
> +		goto out_unlock;
>  	}
>  
>  	pzone->therm_dev = thermal_zone_device_register("db8500_thermal_zone",
> @@ -449,7 +451,8 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>  
>  	if (IS_ERR(pzone->therm_dev)) {
>  		dev_err(&pdev->dev, "Register thermal zone device failed.\n");
> -		return PTR_ERR(pzone->therm_dev);
> +		ret = PTR_ERR(pzone->therm_dev);
> +		goto out_unlock;
>  	}
>  	dev_info(&pdev->dev, "Thermal zone device registered.\n");
>  
> @@ -461,9 +464,11 @@ static int db8500_thermal_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, pzone);
>  	pzone->mode = THERMAL_DEVICE_ENABLED;
> +
> +out_unlock:
>  	mutex_unlock(&pzone->th_lock);
>  
> -	return 0;
> +	return ret;
>  }
>  
>  static int db8500_thermal_remove(struct platform_device *pdev)


--
To unsubscribe from this list: send the line "unsubscribe linux-pm" 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/thermal/db8500_thermal.c b/drivers/thermal/db8500_thermal.c
index 6bdcec4..1e3b3bf 100644
--- a/drivers/thermal/db8500_thermal.c
+++ b/drivers/thermal/db8500_thermal.c
@@ -419,7 +419,8 @@  static int db8500_thermal_probe(struct platform_device *pdev)
 	low_irq = platform_get_irq_byname(pdev, "IRQ_HOTMON_LOW");
 	if (low_irq < 0) {
 		dev_err(&pdev->dev, "Get IRQ_HOTMON_LOW failed.\n");
-		return low_irq;
+		ret = low_irq;
+		goto out_unlock;
 	}
 
 	ret = devm_request_threaded_irq(&pdev->dev, low_irq, NULL,
@@ -427,13 +428,14 @@  static int db8500_thermal_probe(struct platform_device *pdev)
 		"dbx500_temp_low", pzone);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to allocate temp low irq.\n");
-		return ret;
+		goto out_unlock;
 	}
 
 	high_irq = platform_get_irq_byname(pdev, "IRQ_HOTMON_HIGH");
 	if (high_irq < 0) {
 		dev_err(&pdev->dev, "Get IRQ_HOTMON_HIGH failed.\n");
-		return high_irq;
+		ret = high_irq;
+		goto out_unlock;
 	}
 
 	ret = devm_request_threaded_irq(&pdev->dev, high_irq, NULL,
@@ -441,7 +443,7 @@  static int db8500_thermal_probe(struct platform_device *pdev)
 		"dbx500_temp_high", pzone);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Failed to allocate temp high irq.\n");
-		return ret;
+		goto out_unlock;
 	}
 
 	pzone->therm_dev = thermal_zone_device_register("db8500_thermal_zone",
@@ -449,7 +451,8 @@  static int db8500_thermal_probe(struct platform_device *pdev)
 
 	if (IS_ERR(pzone->therm_dev)) {
 		dev_err(&pdev->dev, "Register thermal zone device failed.\n");
-		return PTR_ERR(pzone->therm_dev);
+		ret = PTR_ERR(pzone->therm_dev);
+		goto out_unlock;
 	}
 	dev_info(&pdev->dev, "Thermal zone device registered.\n");
 
@@ -461,9 +464,11 @@  static int db8500_thermal_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, pzone);
 	pzone->mode = THERMAL_DEVICE_ENABLED;
+
+out_unlock:
 	mutex_unlock(&pzone->th_lock);
 
-	return 0;
+	return ret;
 }
 
 static int db8500_thermal_remove(struct platform_device *pdev)