Skip to content

Commit

Permalink
media: hantro: fix post-processing NULL pointer dereference
Browse files Browse the repository at this point in the history
The RK3399 variant does not have postproc_regs declared,
this can cause a NULL pointer dereference trying to decode:

[   89.331359] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000

[   89.352804] Call trace:
[   89.353191]  hantro_postproc_disable+0x20/0xe8 [hantro_vpu]
[   89.354056]  hantro_start_prepare_run+0x58/0x68 [hantro_vpu]
[   89.354923]  hantro_h264_dec_prepare_run+0x30/0x6f0 [hantro_vpu]
[   89.355846]  rk3399_vpu_h264_dec_run+0x1c/0x14a8 [hantro_vpu]
[   89.356748]  device_run+0xa4/0xb8 [hantro_vpu]

Fix this by adding a NULL check in hantro_postproc_enable/disable.

Fixes: 8c2d66b ("media: hantro: Support color conversion via post-processing")
Signed-off-by: Jonas Karlman <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
  • Loading branch information
Kwiboo authored and mchehab committed Jan 23, 2020
1 parent 1fd4d9c commit d239aa0
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/staging/media/hantro/hantro_postproc.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ void hantro_postproc_enable(struct hantro_ctx *ctx)
u32 src_pp_fmt, dst_pp_fmt;
dma_addr_t dst_dma;

if (!vpu->variant->postproc_regs)
return;

/* Turn on pipeline mode. Must be done first. */
HANTRO_PP_REG_WRITE_S(vpu, pipeline_en, 0x1);

Expand Down Expand Up @@ -138,5 +141,8 @@ void hantro_postproc_disable(struct hantro_ctx *ctx)
{
struct hantro_dev *vpu = ctx->dev;

if (!vpu->variant->postproc_regs)
return;

HANTRO_PP_REG_WRITE_S(vpu, pipeline_en, 0x0);
}

0 comments on commit d239aa0

Please sign in to comment.