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 >