[PATCH] media: rkisp1: rsz: crash fix when setting src format

Tomasz Figa tfiga at chromium.org
Wed Feb 10 01:09:50 EST 2021


On Thu, Dec 10, 2020 at 1:15 AM Dafna Hirschfeld
<dafna.hirschfeld at collabora.com> wrote:
>
> When setting the source media bus code in the resizer,
> we first check that the current media bus code in the
> source is yuv encoded format. This is done by
> retrieving the data from the formats list of the isp
> entity. This cause a crash when the media bus code on the
> source is YUYV8_1_5X8 which is not supported by the isp
> entity. Instead we should test the sink format of the resizer
> which is guaranteed to be supported by the isp entity.
>
> Fixes: 251b6eebb6c49 ("media: staging: rkisp1: rsz: Add support to more YUV encoded mbus codes on src pad")
> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld at collabora.com>
> ---
>  drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c
> index 813670ed9577..79deed8adcea 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c
> @@ -520,14 +520,15 @@ static void rkisp1_rsz_set_src_fmt(struct rkisp1_resizer *rsz,
>                                    struct v4l2_mbus_framefmt *format,
>                                    unsigned int which)
>  {
> -       const struct rkisp1_isp_mbus_info *mbus_info;
> -       struct v4l2_mbus_framefmt *src_fmt;
> +       const struct rkisp1_isp_mbus_info *sink_mbus_info;
> +       struct v4l2_mbus_framefmt *src_fmt, *sink_fmt;
>
> +       sink_fmt = rkisp1_rsz_get_pad_fmt(rsz, cfg, RKISP1_RSZ_PAD_SINK, which);
>         src_fmt = rkisp1_rsz_get_pad_fmt(rsz, cfg, RKISP1_RSZ_PAD_SRC, which);
> -       mbus_info = rkisp1_isp_mbus_info_get(src_fmt->code);
> +       sink_mbus_info = rkisp1_isp_mbus_info_get(sink_fmt->code);
>
>         /* for YUV formats, userspace can change the mbus code on the src pad if it is supported */
> -       if (mbus_info->pixel_enc == V4L2_PIXEL_ENC_YUV &&
> +       if (sink_mbus_info->pixel_enc == V4L2_PIXEL_ENC_YUV &&
>             rkisp1_rsz_get_yuv_mbus_info(format->code))
>                 src_fmt->code = format->code;
>
> --
> 2.17.1
>

Gentle ping on this patch. I think it should also go to stable, as it
fixes a crash.

Best regards,
Tomasz



More information about the Linux-rockchip mailing list