video: rockchip: mpp: Fix out-of-bounds err

Rootcause: fmt_reg.class not initial

Error notes:

[  172.540549][ T4535] BUG: KFENCE: out-of-bounds read in rkvenc_alloc_task+0x494/0x6d8 [rk_vcodec]
[  172.540549][ T4535]
[  172.540565][ T4535] Out-of-bounds read at 0x000000002927f5b0 (768B right of kfence-#30):
[  172.540671][ T4535]  rkvenc_alloc_task+0x494/0x6d8 [rk_vcodec]
[  172.540775][ T4535]  mpp_process_task_default+0x38/0x210 [rk_vcodec]
[  172.540877][ T4535]  mpp_dev_ioctl+0x1e4/0x368 [rk_vcodec]
[  172.540895][ T4535]  __arm64_compat_sys_ioctl+0x10c/0x160
[  172.540912][ T4535]  el0_svc_common+0xa4/0x180
[  172.540925][ T4535]  do_el0_svc_compat+0x20/0x50
[  172.540941][ T4535]  el0_svc_compat+0x14/0x24
[  172.540955][ T4535]  el0_sync_compat_handler+0x7c/0xbc
[  172.540966][ T4535]  el0_sync_compat+0x1ac/0x1c0
[  172.540974][ T4535]
[  172.540987][ T4535] kfence-#30 [0x0000000027db494f-0x00000000574dca5f, size=92,cache=kmalloc-128] allocated by task 4535:
[  172.541100][ T4535]  kzalloc+0x18/0x28 [rk_vcodec]
[  172.541201][ T4535]  rkvenc_alloc_task+0x260/0x6d8 [rk_vcodec]
[  172.541301][ T4535]  mpp_process_task_default+0x38/0x210 [rk_vcodec]
[  172.541401][ T4535]  mpp_dev_ioctl+0x1e4/0x368 [rk_vcodec]
[  172.541414][ T4535]  __arm64_compat_sys_ioctl+0x10c/0x160
[  172.541428][ T4535]  el0_svc_common+0xa4/0x180
[  172.541441][ T4535]  do_el0_svc_compat+0x20/0x50
[  172.541455][ T4535]  el0_svc_compat+0x14/0x24
[  172.541468][ T4535]  el0_sync_compat_handler+0x7c/0xbc
[  172.541479][ T4535]  el0_sync_compat+0x1ac/0x1c0
[  172.541486][ T4535]
[  172.541499][ T4535] CPU: 5 PID: 4535 Comm: mpp_h264e_4534 Not tainted 5.10.43 #264
[  172.541509][ T4535] Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT)
[  172.541524][ T4535]

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ic1ffce5d5c4f5b65115f4a530e76383f6aa8f8d7
This commit is contained in:
Yandong Lin
2021-11-14 11:30:47 +08:00
committed by Tao Huang
parent 84b44e0ae3
commit aadb82e121

View File

@@ -220,6 +220,7 @@ static struct rkvenc_hw_info rkvenc_v2_hw_info = {
.base_fmt = RKVENC_FMT_OSD_BASE,
},
.fmt_reg = {
.class = RKVENC_CLASS_PIC,
.base = 0x0300,
.bitpos = 0,
.bitlen = 1,