Re: [PATCH 3.9-stable] staging:iio:light:tsl2x7x: fix the error handlingin tsl2x7x_probe()

From: Jonathan Cameron
Date: Sun Jun 02 2013 - 11:12:54 EST


On 05/24/2013 03:42 AM, Jonghwan Choi wrote:
> This patch looks like it should be in the 3.9-stable tree, should we apply
> it?
It's a pretty unlikely problem to hit in reality so up to you on whether
you think it worth picking up. Also note that only the -EINVAL bit
is actually a fix. The rest of it was some incidental tidying up.

Jonathan

> ------------------
>
> From: "Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>"
>
> commit 3b813798aa7030f1beef638c75f8b0008f737a82 upstream
>
> Fix to return -EINVAL in the i2c device found error handling
> case instead of 0, as done elsewhere in this function.
> And also correct the fail1 and fail2 lable to do the right thing.
>
> Signed-off-by: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx>
> Signed-off-by: Jonghwan Choi <jhbird.choi@xxxxxxxxxxx>
> ---
> drivers/staging/iio/light/tsl2x7x_core.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/iio/light/tsl2x7x_core.c
> b/drivers/staging/iio/light/tsl2x7x_core.c
> index a58731e..2d40c03 100644
> --- a/drivers/staging/iio/light/tsl2x7x_core.c
> +++ b/drivers/staging/iio/light/tsl2x7x_core.c
> @@ -1869,6 +1869,7 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
> dev_info(&chip->client->dev,
> "%s: i2c device found does not match
> expected id\n",
> __func__);
> + ret = -EINVAL;
> goto fail1;
> }
>
> @@ -1907,7 +1908,7 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
> if (ret) {
> dev_err(&clientp->dev,
> "%s: irq request failed", __func__);
> - goto fail2;
> + goto fail1;
> }
> }
>
> @@ -1920,17 +1921,17 @@ static int tsl2x7x_probe(struct i2c_client *clientp,
> if (ret) {
> dev_err(&clientp->dev,
> "%s: iio registration failed\n", __func__);
> - goto fail1;
> + goto fail2;
> }
>
> dev_info(&clientp->dev, "%s Light sensor found.\n", id->name);
>
> return 0;
>
> -fail1:
> +fail2:
> if (clientp->irq)
> free_irq(clientp->irq, indio_dev);
> -fail2:
> +fail1:
> iio_device_free(indio_dev);
>
> return ret;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/