This patch looks like it should be in the 3.9-stable tree, should we apply
it?
------------------
From: "Wei Yongjun <[email protected]>"
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 <[email protected]>
Signed-off-by: Jonathan Cameron <[email protected]>
Signed-off-by: Jonghwan Choi <[email protected]>
---
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;
--
1.7.9.5
Hi Jonghwan,
Jonghwan Choi <[email protected]> writes:
> This patch looks like it should be in the 3.9-stable tree, should we apply
> it?
I'm queuing this patch to the 3.5 kernel as well, as it looks like it
is also applicable.
Cheers,
--
Luis
>
> ------------------
>
> From: "Wei Yongjun <[email protected]>"
>
> 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 <[email protected]>
> Signed-off-by: Jonathan Cameron <[email protected]>
> Signed-off-by: Jonghwan Choi <[email protected]>
> ---
> 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;
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 <[email protected]>"
>
> 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 <[email protected]>
> Signed-off-by: Jonathan Cameron <[email protected]>
> Signed-off-by: Jonghwan Choi <[email protected]>
> ---
> 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;
Thanks for the kind reply.
Best Regards.~
> -----Original Message-----
> From: Jonathan Cameron [mailto:[email protected]]
> Sent: Monday, June 03, 2013 12:13 AM
> To: Jonghwan Choi
> Cc: [email protected]; [email protected]; 'Wei Yongjun';
> 'Jonathan Cameron'
> Subject: Re: [PATCH 3.9-stable] staging:iio:light:tsl2x7x: fix the error
> handling in tsl2x7x_probe()
>
> 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 <[email protected]>"
> >
> > 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 <[email protected]>
> > Signed-off-by: Jonathan Cameron <[email protected]>
> > Signed-off-by: Jonghwan Choi <[email protected]>
> > ---
> > 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;