2019-09-27 18:46:36

by Benoit Parrot

[permalink] [raw]
Subject: [Patch v4 4/8] media: i2c: ov2659: fix s_stream return value

In ov2659_s_stream() return value for invoked function should be checked
and propagated.

Signed-off-by: Benoit Parrot <[email protected]>
---
drivers/media/i2c/ov2659.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/media/i2c/ov2659.c b/drivers/media/i2c/ov2659.c
index f77320e8a60d..cd4625432264 100644
--- a/drivers/media/i2c/ov2659.c
+++ b/drivers/media/i2c/ov2659.c
@@ -1187,10 +1187,13 @@ static int ov2659_s_stream(struct v4l2_subdev *sd, int on)
goto unlock;
}

- ov2659_set_pixel_clock(ov2659);
- ov2659_set_frame_size(ov2659);
- ov2659_set_format(ov2659);
- ov2659_set_streaming(ov2659, 1);
+ ret = ov2659_set_pixel_clock(ov2659);
+ if (!ret)
+ ret = ov2659_set_frame_size(ov2659);
+ if (!ret)
+ ret = ov2659_set_format(ov2659);
+ if (!ret)
+ ov2659_set_streaming(ov2659, 1);
ov2659->streaming = on;

unlock:
--
2.17.1


2019-09-27 20:34:38

by Lad, Prabhakar

[permalink] [raw]
Subject: Re: [Patch v4 4/8] media: i2c: ov2659: fix s_stream return value

Hi Benoit,

thank you for the patch.

On Fri, Sep 27, 2019 at 7:46 PM Benoit Parrot <[email protected]> wrote:
>
> In ov2659_s_stream() return value for invoked function should be checked
> and propagated.
>
> Signed-off-by: Benoit Parrot <[email protected]>
> ---
> drivers/media/i2c/ov2659.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/i2c/ov2659.c b/drivers/media/i2c/ov2659.c
> index f77320e8a60d..cd4625432264 100644
> --- a/drivers/media/i2c/ov2659.c
> +++ b/drivers/media/i2c/ov2659.c
> @@ -1187,10 +1187,13 @@ static int ov2659_s_stream(struct v4l2_subdev *sd, int on)
> goto unlock;
> }
>
> - ov2659_set_pixel_clock(ov2659);
> - ov2659_set_frame_size(ov2659);
> - ov2659_set_format(ov2659);
> - ov2659_set_streaming(ov2659, 1);
> + ret = ov2659_set_pixel_clock(ov2659);
> + if (!ret)
> + ret = ov2659_set_frame_size(ov2659);
> + if (!ret)
> + ret = ov2659_set_format(ov2659);
> + if (!ret)
> + ov2659_set_streaming(ov2659, 1);
> ov2659->streaming = on;
>
the "ov2659->streaming = on;" should only be set if above calls
succeed, otherwise we might hit -EBUSY during set_fmt.

Cheers,
--Prabhakar Lad

> unlock:
> --
> 2.17.1
>

2019-09-30 12:11:00

by Benoit Parrot

[permalink] [raw]
Subject: Re: [Patch v4 4/8] media: i2c: ov2659: fix s_stream return value

Lad, Prabhakar <[email protected]> wrote on Fri [2019-Sep-27 21:33:28 +0100]:
> Hi Benoit,
>
> thank you for the patch.
>
> On Fri, Sep 27, 2019 at 7:46 PM Benoit Parrot <[email protected]> wrote:
> >
> > In ov2659_s_stream() return value for invoked function should be checked
> > and propagated.
> >
> > Signed-off-by: Benoit Parrot <[email protected]>
> > ---
> > drivers/media/i2c/ov2659.c | 11 +++++++----
> > 1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/media/i2c/ov2659.c b/drivers/media/i2c/ov2659.c
> > index f77320e8a60d..cd4625432264 100644
> > --- a/drivers/media/i2c/ov2659.c
> > +++ b/drivers/media/i2c/ov2659.c
> > @@ -1187,10 +1187,13 @@ static int ov2659_s_stream(struct v4l2_subdev *sd, int on)
> > goto unlock;
> > }
> >
> > - ov2659_set_pixel_clock(ov2659);
> > - ov2659_set_frame_size(ov2659);
> > - ov2659_set_format(ov2659);
> > - ov2659_set_streaming(ov2659, 1);
> > + ret = ov2659_set_pixel_clock(ov2659);
> > + if (!ret)
> > + ret = ov2659_set_frame_size(ov2659);
> > + if (!ret)
> > + ret = ov2659_set_format(ov2659);
> > + if (!ret)
> > + ov2659_set_streaming(ov2659, 1);
> > ov2659->streaming = on;
> >
> the "ov2659->streaming = on;" should only be set if above calls
> succeed, otherwise we might hit -EBUSY during set_fmt.

Thanks, good catch.

Benoit

>
> Cheers,
> --Prabhakar Lad
>
> > unlock:
> > --
> > 2.17.1
> >