Message ID | 20220823171930.9236-1-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | c53e3a049f35978a150526671587fd46b1ae7ca1 |
Headers | show |
Series | media: rkisp1: Zero v4l2_subdev_format fields in when validating links | expand |
Hi Laurent, In the subject: s/in // On Tue, Aug 23, 2022 at 08:19:30PM +0300, Laurent Pinchart wrote: > The local sd_fmt variable in rkisp1_capture_link_validate() has > uninitialized fields, which causes random failures when calling the > subdev .get_fmt() operation. Fix it by initialization the variable when s/initialization/initializing/ > declaring it, which zeros all other fields. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c > index 0d5e3373e1f5..28f5bf284314 100644 > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c > @@ -1394,11 +1394,12 @@ static int rkisp1_capture_link_validate(struct media_link *link) > struct rkisp1_capture *cap = video_get_drvdata(vdev); > const struct rkisp1_capture_fmt_cfg *fmt = > rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat); > - struct v4l2_subdev_format sd_fmt; > + struct v4l2_subdev_format sd_fmt = { > + .which = V4L2_SUBDEV_FORMAT_ACTIVE, > + .pad = link->source->index, > + }; > int ret; > > - sd_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE; > - sd_fmt.pad = link->source->index; > ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &sd_fmt); > if (ret) > return ret;
On 23.08.2022 20:19, Laurent Pinchart wrote: >The local sd_fmt variable in rkisp1_capture_link_validate() has >uninitialized fields, which causes random failures when calling the >subdev .get_fmt() operation. Fix it by initialization the variable when >declaring it, which zeros all other fields. > >Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com> >--- > drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c >index 0d5e3373e1f5..28f5bf284314 100644 >--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c >+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c >@@ -1394,11 +1394,12 @@ static int rkisp1_capture_link_validate(struct media_link *link) > struct rkisp1_capture *cap = video_get_drvdata(vdev); > const struct rkisp1_capture_fmt_cfg *fmt = > rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat); >- struct v4l2_subdev_format sd_fmt; >+ struct v4l2_subdev_format sd_fmt = { >+ .which = V4L2_SUBDEV_FORMAT_ACTIVE, >+ .pad = link->source->index, >+ }; > int ret; > >- sd_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE; >- sd_fmt.pad = link->source->index; > ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &sd_fmt); > if (ret) > return ret; >-- >Regards, > >Laurent Pinchart >
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c index 0d5e3373e1f5..28f5bf284314 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -1394,11 +1394,12 @@ static int rkisp1_capture_link_validate(struct media_link *link) struct rkisp1_capture *cap = video_get_drvdata(vdev); const struct rkisp1_capture_fmt_cfg *fmt = rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat); - struct v4l2_subdev_format sd_fmt; + struct v4l2_subdev_format sd_fmt = { + .which = V4L2_SUBDEV_FORMAT_ACTIVE, + .pad = link->source->index, + }; int ret; - sd_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE; - sd_fmt.pad = link->source->index; ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &sd_fmt); if (ret) return ret;
The local sd_fmt variable in rkisp1_capture_link_validate() has uninitialized fields, which causes random failures when calling the subdev .get_fmt() operation. Fix it by initialization the variable when declaring it, which zeros all other fields. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)