Re: [PATCH] media: platform: nxp: fix return value check in mipi_csis_s_stream()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andy,

  thanks for the patch

On Wed, Feb 07, 2024 at 11:36:57PM +0800, Andy Chen wrote:
> Hi,
>
> find_csis_format() may return NULL, and we should determine its return value
> to prevent a fatal error when later functions use it.
>
> diff --git a/drivers/media/platform/nxp/imx-mipi-csis.c b/drivers/media/platform/nxp/imx-mipi-csis.c
> index db8ff5f5c4d3..ac867620e2ba 100644
> --- a/drivers/media/platform/nxp/imx-mipi-csis.c
> +++ b/drivers/media/platform/nxp/imx-mipi-csis.c
> @@ -956,6 +956,8 @@ static int mipi_csis_s_stream(struct v4l2_subdev *sd, int enable)
>
>  	format = v4l2_subdev_state_get_format(state, CSIS_PAD_SINK);
>  	csis_fmt = find_csis_format(format->code);
> +	if (!csis_fmt)
> +		return -EPIPE;
>

This shouldn't be required afaict

'format' comes from the subdev state on the CSIS_PAD_SINK:

 	format = v4l2_subdev_state_get_format(state, CSIS_PAD_SINK);

If you check the mipi_csis_set_fmt() implementation, the driver first
fix-ups any non-valid format supplied by the user:

	csis_fmt = find_csis_format(sdformat->format.code);
	if (!csis_fmt)
		csis_fmt = &mipi_csis_formats[0];

And then stores it in the subdev state (on the same CSIS_PAD_SINK pad)

	fmt = v4l2_subdev_state_get_format(sd_state, sdformat->pad);

	fmt->code = csis_fmt->code;

from where it gets retrieved at s_stream() time.

This guarantees that at s_stream time, the format is valid if I'm not
mistaken.

As Hans has already asked: did you see this failing or was this patch
"just in case" ?

Thanks
  j

>  	ret = mipi_csis_calculate_params(csis, csis_fmt);
>  	if (ret < 0)
>
> This is my first patch, any suggestions are welcome, thanks!
>
> Regards,
>
> Andy Chen
>




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux