All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer
@ 2019-02-19 13:24 Mauro Carvalho Chehab
  2019-02-19 13:24 ` [PATCH 2/2] media: imx7-media-csi: get rid of unused var Mauro Carvalho Chehab
  2019-02-20 11:21 ` [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer Rui Miguel Silva
  0 siblings, 2 replies; 4+ messages in thread
From: Mauro Carvalho Chehab @ 2019-02-19 13:24 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Rui Miguel Silva, Steve Longerbeam,
	Philipp Zabel, Greg Kroah-Hartman, devel

if imx7_csi_try_fmt() fails, outcc variable won't be
initialized and csi->cc[IMX7_CSI_PAD_SRC] would be pointing
to a random location.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
 drivers/staging/media/imx/imx7-media-csi.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c
index d775e259fece..0b1788d79ce9 100644
--- a/drivers/staging/media/imx/imx7-media-csi.c
+++ b/drivers/staging/media/imx/imx7-media-csi.c
@@ -980,10 +980,10 @@ static int imx7_csi_get_fmt(struct v4l2_subdev *sd,
 	return ret;
 }
 
-static void imx7_csi_try_fmt(struct imx7_csi *csi,
-			     struct v4l2_subdev_pad_config *cfg,
-			     struct v4l2_subdev_format *sdformat,
-			     const struct imx_media_pixfmt **cc)
+static int imx7_csi_try_fmt(struct imx7_csi *csi,
+			    struct v4l2_subdev_pad_config *cfg,
+			    struct v4l2_subdev_format *sdformat,
+			    const struct imx_media_pixfmt **cc)
 {
 	const struct imx_media_pixfmt *in_cc;
 	struct v4l2_mbus_framefmt *in_fmt;
@@ -992,7 +992,7 @@ static void imx7_csi_try_fmt(struct imx7_csi *csi,
 	in_fmt = imx7_csi_get_format(csi, cfg, IMX7_CSI_PAD_SINK,
 				     sdformat->which);
 	if (!in_fmt)
-		return;
+		return -EINVAL;
 
 	switch (sdformat->pad) {
 	case IMX7_CSI_PAD_SRC:
@@ -1023,8 +1023,10 @@ static void imx7_csi_try_fmt(struct imx7_csi *csi,
 						   false);
 		break;
 	default:
+		return -EINVAL;
 		break;
 	}
+	return 0;
 }
 
 static int imx7_csi_set_fmt(struct v4l2_subdev *sd,
@@ -1067,8 +1069,10 @@ static int imx7_csi_set_fmt(struct v4l2_subdev *sd,
 		format.pad = IMX7_CSI_PAD_SRC;
 		format.which = sdformat->which;
 		format.format = sdformat->format;
-		imx7_csi_try_fmt(csi, cfg, &format, &outcc);
-
+		if (imx7_csi_try_fmt(csi, cfg, &format, &outcc)) {
+			ret = -EINVAL;
+			goto out_unlock;
+		}
 		outfmt = imx7_csi_get_format(csi, cfg, IMX7_CSI_PAD_SRC,
 					     sdformat->which);
 		*outfmt = format.format;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] media: imx7-media-csi: get rid of unused var
  2019-02-19 13:24 [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer Mauro Carvalho Chehab
@ 2019-02-19 13:24 ` Mauro Carvalho Chehab
  2019-02-20 11:23   ` Rui Miguel Silva
  2019-02-20 11:21 ` [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer Rui Miguel Silva
  1 sibling, 1 reply; 4+ messages in thread
From: Mauro Carvalho Chehab @ 2019-02-19 13:24 UTC (permalink / raw)
  Cc: Mauro Carvalho Chehab, Linux Media Mailing List,
	Mauro Carvalho Chehab, Rui Miguel Silva, Steve Longerbeam,
	Philipp Zabel, Greg Kroah-Hartman, devel

	drivers/staging/media/imx/imx7-media-csi.c: In function 'imx7_csi_enum_mbus_code':
	drivers/staging/media/imx/imx7-media-csi.c:926:33: warning: variable 'in_cc' set but not used [-Wunused-but-set-variable]
	  const struct imx_media_pixfmt *in_cc;
	                                 ^~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
---
 drivers/staging/media/imx/imx7-media-csi.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c
index 0b1788d79ce9..3fba7c27c0ec 100644
--- a/drivers/staging/media/imx/imx7-media-csi.c
+++ b/drivers/staging/media/imx/imx7-media-csi.c
@@ -923,7 +923,6 @@ static int imx7_csi_enum_mbus_code(struct v4l2_subdev *sd,
 				   struct v4l2_subdev_mbus_code_enum *code)
 {
 	struct imx7_csi *csi = v4l2_get_subdevdata(sd);
-	const struct imx_media_pixfmt *in_cc;
 	struct v4l2_mbus_framefmt *in_fmt;
 	int ret = 0;
 
@@ -931,8 +930,6 @@ static int imx7_csi_enum_mbus_code(struct v4l2_subdev *sd,
 
 	in_fmt = imx7_csi_get_format(csi, cfg, IMX7_CSI_PAD_SINK, code->which);
 
-	in_cc = imx_media_find_mbus_format(in_fmt->code, CS_SEL_ANY, true);
-
 	switch (code->pad) {
 	case IMX7_CSI_PAD_SINK:
 		ret = imx_media_enum_mbus_format(&code->code, code->index,
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer
  2019-02-19 13:24 [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer Mauro Carvalho Chehab
  2019-02-19 13:24 ` [PATCH 2/2] media: imx7-media-csi: get rid of unused var Mauro Carvalho Chehab
@ 2019-02-20 11:21 ` Rui Miguel Silva
  1 sibling, 0 replies; 4+ messages in thread
From: Rui Miguel Silva @ 2019-02-20 11:21 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linux Media Mailing List, Mauro Carvalho Chehab, Steve Longerbeam,
	Philipp Zabel, Greg Kroah-Hartman, devel

Oi Mauro,
On Tue 19 Feb 2019 at 13:24, Mauro Carvalho Chehab wrote:
> if imx7_csi_try_fmt() fails, outcc variable won't be
> initialized and csi->cc[IMX7_CSI_PAD_SRC] would be pointing
> to a random location.
>
> Signed-off-by: Mauro Carvalho Chehab 
> <mchehab+samsung@kernel.org>

Thanks for this, looks good.
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>

---
Cheers,
	Rui

> ---
>  drivers/staging/media/imx/imx7-media-csi.c | 18 
>  +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/staging/media/imx/imx7-media-csi.c 
> b/drivers/staging/media/imx/imx7-media-csi.c
> index d775e259fece..0b1788d79ce9 100644
> --- a/drivers/staging/media/imx/imx7-media-csi.c
> +++ b/drivers/staging/media/imx/imx7-media-csi.c
> @@ -980,10 +980,10 @@ static int imx7_csi_get_fmt(struct 
> v4l2_subdev *sd,
>  	return ret;
>  }
>  
> -static void imx7_csi_try_fmt(struct imx7_csi *csi,
> -			     struct v4l2_subdev_pad_config *cfg,
> -			     struct v4l2_subdev_format *sdformat,
> -			     const struct imx_media_pixfmt **cc)
> +static int imx7_csi_try_fmt(struct imx7_csi *csi,
> +			    struct v4l2_subdev_pad_config *cfg,
> +			    struct v4l2_subdev_format *sdformat,
> +			    const struct imx_media_pixfmt **cc)
>  {
>  	const struct imx_media_pixfmt *in_cc;
>  	struct v4l2_mbus_framefmt *in_fmt;
> @@ -992,7 +992,7 @@ static void imx7_csi_try_fmt(struct imx7_csi 
> *csi,
>  	in_fmt = imx7_csi_get_format(csi, cfg, IMX7_CSI_PAD_SINK,
>  				     sdformat->which);
>  	if (!in_fmt)
> -		return;
> +		return -EINVAL;
>  
>  	switch (sdformat->pad) {
>  	case IMX7_CSI_PAD_SRC:
> @@ -1023,8 +1023,10 @@ static void imx7_csi_try_fmt(struct 
> imx7_csi *csi,
>  						   false);
>  		break;
>  	default:
> +		return -EINVAL;
>  		break;
>  	}
> +	return 0;
>  }
>  
>  static int imx7_csi_set_fmt(struct v4l2_subdev *sd,
> @@ -1067,8 +1069,10 @@ static int imx7_csi_set_fmt(struct 
> v4l2_subdev *sd,
>  		format.pad = IMX7_CSI_PAD_SRC;
>  		format.which = sdformat->which;
>  		format.format = sdformat->format;
> -		imx7_csi_try_fmt(csi, cfg, &format, &outcc);
> -
> +		if (imx7_csi_try_fmt(csi, cfg, &format, &outcc)) {
> +			ret = -EINVAL;
> +			goto out_unlock;
> +		}
>  		outfmt = imx7_csi_get_format(csi, cfg, 
>  IMX7_CSI_PAD_SRC,
>  					     sdformat->which);
>  		*outfmt = format.format;


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] media: imx7-media-csi: get rid of unused var
  2019-02-19 13:24 ` [PATCH 2/2] media: imx7-media-csi: get rid of unused var Mauro Carvalho Chehab
@ 2019-02-20 11:23   ` Rui Miguel Silva
  0 siblings, 0 replies; 4+ messages in thread
From: Rui Miguel Silva @ 2019-02-20 11:23 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Linux Media Mailing List, Mauro Carvalho Chehab, Steve Longerbeam,
	Philipp Zabel, Greg Kroah-Hartman, devel

Oi Mauro,
On Tue 19 Feb 2019 at 13:24, Mauro Carvalho Chehab wrote:
> 	drivers/staging/media/imx/imx7-media-csi.c: In function 
> 'imx7_csi_enum_mbus_code':
> 	drivers/staging/media/imx/imx7-media-csi.c:926:33: 
> warning: variable 'in_cc' set but not used 
> [-Wunused-but-set-variable]
> 	  const struct imx_media_pixfmt *in_cc;
> 	                                 ^~~~~
>
> Signed-off-by: Mauro Carvalho Chehab 
> <mchehab+samsung@kernel.org>

Acked-by: Rui Miguel Silva <rmfrfs@gmail.com>

---
Cheers,
	Rui

> ---
>  drivers/staging/media/imx/imx7-media-csi.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/drivers/staging/media/imx/imx7-media-csi.c 
> b/drivers/staging/media/imx/imx7-media-csi.c
> index 0b1788d79ce9..3fba7c27c0ec 100644
> --- a/drivers/staging/media/imx/imx7-media-csi.c
> +++ b/drivers/staging/media/imx/imx7-media-csi.c
> @@ -923,7 +923,6 @@ static int imx7_csi_enum_mbus_code(struct 
> v4l2_subdev *sd,
>  				   struct 
>  v4l2_subdev_mbus_code_enum *code)
>  {
>  	struct imx7_csi *csi = v4l2_get_subdevdata(sd);
> -	const struct imx_media_pixfmt *in_cc;
>  	struct v4l2_mbus_framefmt *in_fmt;
>  	int ret = 0;
>  
> @@ -931,8 +930,6 @@ static int imx7_csi_enum_mbus_code(struct 
> v4l2_subdev *sd,
>  
>  	in_fmt = imx7_csi_get_format(csi, cfg, IMX7_CSI_PAD_SINK, 
>  code->which);
>  
> -	in_cc = imx_media_find_mbus_format(in_fmt->code, 
> CS_SEL_ANY, true);
> -
>  	switch (code->pad) {
>  	case IMX7_CSI_PAD_SINK:
>  		ret = imx_media_enum_mbus_format(&code->code, 
>  code->index,


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-20 11:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-19 13:24 [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer Mauro Carvalho Chehab
2019-02-19 13:24 ` [PATCH 2/2] media: imx7-media-csi: get rid of unused var Mauro Carvalho Chehab
2019-02-20 11:23   ` Rui Miguel Silva
2019-02-20 11:21 ` [PATCH 1/2] media: imx7-media-csi: don't store a floating pointer Rui Miguel Silva

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.