[PATCH] media: hantro: Check whether reset op is defined before use
Adam Ford
aford173 at gmail.com
Thu Aug 24 03:39:48 PDT 2023
On Wed, Aug 23, 2023 at 8:39 PM Marek Vasut <marex at denx.de> wrote:
>
> The i.MX8MM/N/P does not define the .reset op since reset of the VPU is
> done by genpd. Check whether the .reset op is defined before calling it
> to avoid NULL pointer dereference.
>
> Note that the Fixes tag is set to the commit which removed the reset op
> from i.MX8M Hantro G2 implementation, this is because before this commit
> all the implementations did define the .reset op.
I am surprised I didn't have issues when I was testing the 8MQ and
8MM, but this makes sense.
>
> Fixes: 6971efb70ac3 ("media: hantro: Allow i.MX8MQ G1 and G2 to run independently")
> Signed-off-by: Marek Vasut <marex at denx.de>
Reviewed-by: Adam Ford <aford173 at gmail.com>
> ---
> Cc: Adam Ford <aford173 at gmail.com>
> Cc: Benjamin Gaignard <benjamin.gaignard at collabora.com>
> Cc: Ezequiel Garcia <ezequiel at vanguardiasur.com.ar>
> Cc: Mauro Carvalho Chehab <mchehab at kernel.org>
> Cc: Philipp Zabel <p.zabel at pengutronix.de>
> Cc: linux-media at vger.kernel.org
> Cc: linux-rockchip at lists.infradead.org
> ---
> drivers/media/platform/verisilicon/hantro_drv.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
> index 423fc85d79ee3..50ec24c753e9e 100644
> --- a/drivers/media/platform/verisilicon/hantro_drv.c
> +++ b/drivers/media/platform/verisilicon/hantro_drv.c
> @@ -125,7 +125,8 @@ void hantro_watchdog(struct work_struct *work)
> ctx = v4l2_m2m_get_curr_priv(vpu->m2m_dev);
> if (ctx) {
> vpu_err("frame processing timed out!\n");
> - ctx->codec_ops->reset(ctx);
> + if (ctx->codec_ops->reset)
> + ctx->codec_ops->reset(ctx);
> hantro_job_finish(vpu, ctx, VB2_BUF_STATE_ERROR);
> }
> }
> --
> 2.40.1
>
More information about the Linux-rockchip
mailing list