2023-05-03 07:56:22

by Yassine Oudjana

[permalink] [raw]
Subject: [PATCH] media: camss: camss-video: Don't zero subdev format again after initialization

From: Yassine Oudjana <[email protected]>

In an earlier commit, setting the which field of the subdev format struct
in video_get_subdev_format was moved to a designated initializer that also
zeroes all other fields. However, the memset call that was zeroing the
fields earlier was left in place, causing the which field to be cleared
after being set in the initializer.

Remove the memset call from video_get_subdev_format to avoid clearing the
initialized which field.

Fixes: ecefa105cc44 ("media: Zero-initialize all structures passed to subdev pad operations")
Signed-off-by: Yassine Oudjana <[email protected]>
---
drivers/media/platform/qcom/camss/camss-video.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/media/platform/qcom/camss/camss-video.c
index 898f32177b12..8640db306026 100644
--- a/drivers/media/platform/qcom/camss/camss-video.c
+++ b/drivers/media/platform/qcom/camss/camss-video.c
@@ -353,7 +353,6 @@ static int video_get_subdev_format(struct camss_video *video,
if (subdev == NULL)
return -EPIPE;

- memset(&fmt, 0, sizeof(fmt));
fmt.pad = pad;

ret = v4l2_subdev_call(subdev, pad, get_fmt, NULL, &fmt);
--
2.40.0


2023-05-03 09:44:02

by Bryan O'Donoghue

[permalink] [raw]
Subject: Re: [PATCH] media: camss: camss-video: Don't zero subdev format again after initialization

On 03/05/2023 08:53, Yassine Oudjana wrote:
> From: Yassine Oudjana <[email protected]>
>
> In an earlier commit, setting the which field of the subdev format struct
> in video_get_subdev_format was moved to a designated initializer that also
> zeroes all other fields. However, the memset call that was zeroing the
> fields earlier was left in place, causing the which field to be cleared
> after being set in the initializer.
>
> Remove the memset call from video_get_subdev_format to avoid clearing the
> initialized which field.
>
> Fixes: ecefa105cc44 ("media: Zero-initialize all structures passed to subdev pad operations")
> Signed-off-by: Yassine Oudjana <[email protected]>
> ---
> drivers/media/platform/qcom/camss/camss-video.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/media/platform/qcom/camss/camss-video.c
> index 898f32177b12..8640db306026 100644
> --- a/drivers/media/platform/qcom/camss/camss-video.c
> +++ b/drivers/media/platform/qcom/camss/camss-video.c
> @@ -353,7 +353,6 @@ static int video_get_subdev_format(struct camss_video *video,
> if (subdev == NULL)
> return -EPIPE;
>
> - memset(&fmt, 0, sizeof(fmt));
> fmt.pad = pad;
>
> ret = v4l2_subdev_call(subdev, pad, get_fmt, NULL, &fmt);

Acked-by: Bryan O'Donoghue <[email protected]>

2023-05-22 13:53:45

by Andrey Konovalov

[permalink] [raw]
Subject: Re: [PATCH] media: camss: camss-video: Don't zero subdev format again after initialization


On 03.05.2023 10:53, Yassine Oudjana wrote:
> From: Yassine Oudjana <[email protected]>
>
> In an earlier commit, setting the which field of the subdev format struct
> in video_get_subdev_format was moved to a designated initializer that also
> zeroes all other fields. However, the memset call that was zeroing the
> fields earlier was left in place, causing the which field to be cleared
> after being set in the initializer.
>
> Remove the memset call from video_get_subdev_format to avoid clearing the
> initialized which field.
>
> Fixes: ecefa105cc44 ("media: Zero-initialize all structures passed to subdev pad operations")
> Signed-off-by: Yassine Oudjana <[email protected]>
> ---
> drivers/media/platform/qcom/camss/camss-video.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/media/platform/qcom/camss/camss-video.c
> index 898f32177b12..8640db306026 100644
> --- a/drivers/media/platform/qcom/camss/camss-video.c
> +++ b/drivers/media/platform/qcom/camss/camss-video.c
> @@ -353,7 +353,6 @@ static int video_get_subdev_format(struct camss_video *video,
> if (subdev == NULL)
> return -EPIPE;
>
> - memset(&fmt, 0, sizeof(fmt));
> fmt.pad = pad;
>
> ret = v4l2_subdev_call(subdev, pad, get_fmt, NULL, &fmt);

Have verified that this fix does work on RB3 and RB5 boards and is
necessary for the capture to work.

Thanks!

Tested-by: Andrey Konovalov <[email protected]>

2023-05-30 18:01:11

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media: camss: camss-video: Don't zero subdev format again after initialization

On Tue, May 30, 2023 at 08:42:30PM +0300, Laurent Pinchart wrote:
> Hi Yassine,
>
> Thank you for the patch.
>
> On Wed, May 03, 2023 at 10:53:40AM +0300, Yassine Oudjana wrote:
> > From: Yassine Oudjana <[email protected]>
> >
> > In an earlier commit, setting the which field of the subdev format struct
> > in video_get_subdev_format was moved to a designated initializer that also
> > zeroes all other fields. However, the memset call that was zeroing the
> > fields earlier was left in place, causing the which field to be cleared
> > after being set in the initializer.
> >
> > Remove the memset call from video_get_subdev_format to avoid clearing the
> > initialized which field.
> >
> > Fixes: ecefa105cc44 ("media: Zero-initialize all structures passed to subdev pad operations")
> > Signed-off-by: Yassine Oudjana <[email protected]>
>
> Reviewed-by: Laurent Pinchart <[email protected]>
>
> This is a regression fix, I'll send a pull request right away.

The patch has actually been applied to the media fixes branch already
:-)

> > ---
> > drivers/media/platform/qcom/camss/camss-video.c | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/media/platform/qcom/camss/camss-video.c
> > index 898f32177b12..8640db306026 100644
> > --- a/drivers/media/platform/qcom/camss/camss-video.c
> > +++ b/drivers/media/platform/qcom/camss/camss-video.c
> > @@ -353,7 +353,6 @@ static int video_get_subdev_format(struct camss_video *video,
> > if (subdev == NULL)
> > return -EPIPE;
> >
> > - memset(&fmt, 0, sizeof(fmt));
> > fmt.pad = pad;
> >
> > ret = v4l2_subdev_call(subdev, pad, get_fmt, NULL, &fmt);

--
Regards,

Laurent Pinchart

2023-05-30 18:02:43

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media: camss: camss-video: Don't zero subdev format again after initialization

Hi Yassine,

Thank you for the patch.

On Wed, May 03, 2023 at 10:53:40AM +0300, Yassine Oudjana wrote:
> From: Yassine Oudjana <[email protected]>
>
> In an earlier commit, setting the which field of the subdev format struct
> in video_get_subdev_format was moved to a designated initializer that also
> zeroes all other fields. However, the memset call that was zeroing the
> fields earlier was left in place, causing the which field to be cleared
> after being set in the initializer.
>
> Remove the memset call from video_get_subdev_format to avoid clearing the
> initialized which field.
>
> Fixes: ecefa105cc44 ("media: Zero-initialize all structures passed to subdev pad operations")
> Signed-off-by: Yassine Oudjana <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

This is a regression fix, I'll send a pull request right away.

> ---
> drivers/media/platform/qcom/camss/camss-video.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/camss/camss-video.c b/drivers/media/platform/qcom/camss/camss-video.c
> index 898f32177b12..8640db306026 100644
> --- a/drivers/media/platform/qcom/camss/camss-video.c
> +++ b/drivers/media/platform/qcom/camss/camss-video.c
> @@ -353,7 +353,6 @@ static int video_get_subdev_format(struct camss_video *video,
> if (subdev == NULL)
> return -EPIPE;
>
> - memset(&fmt, 0, sizeof(fmt));
> fmt.pad = pad;
>
> ret = v4l2_subdev_call(subdev, pad, get_fmt, NULL, &fmt);

--
Regards,

Laurent Pinchart