diff mbox series

media: rkisp1: Zero v4l2_subdev_format fields in when validating links

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

Commit Message

Laurent Pinchart Aug. 23, 2022, 5:19 p.m. UTC
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(-)

Comments

Paul Elder Aug. 24, 2022, 5:48 p.m. UTC | #1
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;
Dafna Hirschfeld Sept. 3, 2022, 3:53 a.m. UTC | #2
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 mbox series

Patch

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;