diff mbox

[PATCHv2] mfd: twl4030: Fix mismatch in mutex lock-unlock

Message ID 1310397631-1596-1-git-send-email-premi@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sanjeev Premi July 11, 2011, 3:20 p.m. UTC
A mutex is locked on entry into twl4030_madc_conversion().
Immediate return on some error conditions leaves the
mutex locked.

This patch ensures that mutex is always unlocked before
leaving the function.

Signed-off-by: Sanjeev Premi <premi@ti.com>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
---

 Compile tested only.

 Changes since v1:
   None. Repost after adding Samuel Ortiz to cc: and
   removed lm-sensors list from to: list.

 drivers/mfd/twl4030-madc.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

Comments

J, KEERTHY July 11, 2011, 5:03 p.m. UTC | #1
Hi Sanjeev,

Thanks. Changes look good to me.

On Mon, Jul 11, 2011 at 8:50 PM, Sanjeev Premi <premi@ti.com> wrote:
> A mutex is locked on entry into twl4030_madc_conversion().
> Immediate return on some error conditions leaves the
> mutex locked.
>
> This patch ensures that mutex is always unlocked before
> leaving the function.
>
> Signed-off-by: Sanjeev Premi <premi@ti.com>
> Cc: Keerthy <j-keerthy@ti.com>
> Cc: Samuel Ortiz <sameo@linux.intel.com>
> ---
>
>  Compile tested only.
>
>  Changes since v1:
>   None. Repost after adding Samuel Ortiz to cc: and
>   removed lm-sensors list from to: list.
>
>  drivers/mfd/twl4030-madc.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mfd/twl4030-madc.c b/drivers/mfd/twl4030-madc.c
> index 3941ddc..b5d598c 100644
> --- a/drivers/mfd/twl4030-madc.c
> +++ b/drivers/mfd/twl4030-madc.c
> @@ -530,13 +530,13 @@ int twl4030_madc_conversion(struct twl4030_madc_request *req)
>        if (ret) {
>                dev_err(twl4030_madc->dev,
>                        "unable to write sel register 0x%X\n", method->sel + 1);
> -               return ret;
> +               goto out;
>        }
>        ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, ch_lsb, method->sel);
>        if (ret) {
>                dev_err(twl4030_madc->dev,
>                        "unable to write sel register 0x%X\n", method->sel + 1);
> -               return ret;
> +               goto out;
>        }
>        /* Select averaging for all channels if do_avg is set */
>        if (req->do_avg) {
> @@ -546,7 +546,7 @@ int twl4030_madc_conversion(struct twl4030_madc_request *req)
>                        dev_err(twl4030_madc->dev,
>                                "unable to write avg register 0x%X\n",
>                                method->avg + 1);
> -                       return ret;
> +                       goto out;
>                }
>                ret = twl_i2c_write_u8(TWL4030_MODULE_MADC,
>                                       ch_lsb, method->avg);
> @@ -554,7 +554,7 @@ int twl4030_madc_conversion(struct twl4030_madc_request *req)
>                        dev_err(twl4030_madc->dev,
>                                "unable to write sel reg 0x%X\n",
>                                method->sel + 1);
> -                       return ret;
> +                       goto out;
>                }
>        }
>        if (req->type == TWL4030_MADC_IRQ_ONESHOT && req->func_cb != NULL) {
> --
> 1.7.2.2
>
>
Sanjeev Premi July 21, 2011, 10:44 a.m. UTC | #2
> -----Original Message-----
> From: Premi, Sanjeev 
> Sent: Monday, July 11, 2011 8:51 PM
> To: linux-omap@vger.kernel.org
> Cc: Premi, Sanjeev; J, KEERTHY; Samuel Ortiz
> Subject: [PATCHv2] mfd: twl4030: Fix mismatch in mutex lock-unlock
> 
> A mutex is locked on entry into twl4030_madc_conversion().
> Immediate return on some error conditions leaves the
> mutex locked.
> 
> This patch ensures that mutex is always unlocked before
> leaving the function.
> 
> Signed-off-by: Sanjeev Premi <premi@ti.com>
> Cc: Keerthy <j-keerthy@ti.com>
> Cc: Samuel Ortiz <sameo@linux.intel.com>

Samuel, Keerthy,

Just wanted to ping both of you on this patch.

~sanjeev
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Samuel Ortiz July 27, 2011, 10:55 a.m. UTC | #3
Hi Premi,

On Mon, Jul 11, 2011 at 08:50:31PM +0530, Sanjeev Premi wrote:
> A mutex is locked on entry into twl4030_madc_conversion().
> Immediate return on some error conditions leaves the
> mutex locked.
> 
> This patch ensures that mutex is always unlocked before
> leaving the function.
Patch applied, many thanks.

Cheers,
Samuel.
diff mbox

Patch

diff --git a/drivers/mfd/twl4030-madc.c b/drivers/mfd/twl4030-madc.c
index 3941ddc..b5d598c 100644
--- a/drivers/mfd/twl4030-madc.c
+++ b/drivers/mfd/twl4030-madc.c
@@ -530,13 +530,13 @@  int twl4030_madc_conversion(struct twl4030_madc_request *req)
 	if (ret) {
 		dev_err(twl4030_madc->dev,
 			"unable to write sel register 0x%X\n", method->sel + 1);
-		return ret;
+		goto out;
 	}
 	ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, ch_lsb, method->sel);
 	if (ret) {
 		dev_err(twl4030_madc->dev,
 			"unable to write sel register 0x%X\n", method->sel + 1);
-		return ret;
+		goto out;
 	}
 	/* Select averaging for all channels if do_avg is set */
 	if (req->do_avg) {
@@ -546,7 +546,7 @@  int twl4030_madc_conversion(struct twl4030_madc_request *req)
 			dev_err(twl4030_madc->dev,
 				"unable to write avg register 0x%X\n",
 				method->avg + 1);
-			return ret;
+			goto out;
 		}
 		ret = twl_i2c_write_u8(TWL4030_MODULE_MADC,
 				       ch_lsb, method->avg);
@@ -554,7 +554,7 @@  int twl4030_madc_conversion(struct twl4030_madc_request *req)
 			dev_err(twl4030_madc->dev,
 				"unable to write sel reg 0x%X\n",
 				method->sel + 1);
-			return ret;
+			goto out;
 		}
 	}
 	if (req->type == TWL4030_MADC_IRQ_ONESHOT && req->func_cb != NULL) {