linux-stable/drivers/media
Yunfei Dong 23aaf82412 media: mediatek: vcodec: adding lock to protect decoder context list
[ Upstream commit 6467cda18c ]

Add a lock for the ctx_list, to avoid accessing a NULL pointer
within the 'vpu_dec_ipi_handler' function when the ctx_list has
been deleted due to an unexpected behavior on the SCP IP block.

Hardware name: Google juniper sku16 board (DT)
pstate: 20400005 (nzCv daif +PAN -UAO -TCO BTYPE=--)
pc : vpu_dec_ipi_handler+0x58/0x1f8 [mtk_vcodec_dec]
lr : scp_ipi_handler+0xd0/0x194 [mtk_scp]
sp : ffffffc0131dbbd0
x29: ffffffc0131dbbd0 x28: 0000000000000000
x27: ffffff9bb277f348 x26: ffffff9bb242ad00
x25: ffffffd2d440d3b8 x24: ffffffd2a13ff1d4
x23: ffffff9bb7fe85a0 x22: ffffffc0133fbdb0
x21: 0000000000000010 x20: ffffff9b050ea328
x19: ffffffc0131dbc08 x18: 0000000000001000
x17: 0000000000000000 x16: ffffffd2d461c6e0
x15: 0000000000000242 x14: 000000000000018f
x13: 000000000000004d x12: 0000000000000000
x11: 0000000000000001 x10: fffffffffffffff0
x9 : ffffff9bb6e793a8 x8 : 0000000000000000
x7 : 0000000000000000 x6 : 000000000000003f
x5 : 0000000000000040 x4 : fffffffffffffff0
x3 : 0000000000000020 x2 : ffffff9bb6e79080
x1 : 0000000000000010 x0 : ffffffc0131dbc08
Call trace:
vpu_dec_ipi_handler+0x58/0x1f8 [mtk_vcodec_dec (HASH:6c3f 2)]
scp_ipi_handler+0xd0/0x194 [mtk_scp (HASH:7046 3)]
mt8183_scp_irq_handler+0x44/0x88 [mtk_scp (HASH:7046 3)]
scp_irq_handler+0x48/0x90 [mtk_scp (HASH:7046 3)]
irq_thread_fn+0x38/0x94
irq_thread+0x100/0x1c0
kthread+0x140/0x1fc
ret_from_fork+0x10/0x30
Code: 54000088 f94ca50a eb14015f 54000060 (f9400108)
---[ end trace ace43ce36cbd5c93 ]---
Kernel panic - not syncing: Oops: Fatal exception
SMP: stopping secondary CPUs
Kernel Offset: 0x12c4000000 from 0xffffffc010000000
PHYS_OFFSET: 0xffffffe580000000
CPU features: 0x08240002,2188200c
Memory Limit: none

Fixes: 655b86e52e ("media: mediatek: vcodec: Fix possible invalid memory access for decoder")
Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 13:10:11 +02:00
..
cec media: platform: cros-ec: Add Dexi to the match table 2023-11-23 13:39:09 +01:00
common media: v4l2-tpg: fix some memleaks in tpg_alloc 2024-03-26 18:17:02 -04:00
dvb-core media: edia: dvbdev: fix a use-after-free 2024-03-26 18:17:03 -04:00
dvb-frontends media: dvb-frontends: avoid stack overflow warnings with clang 2024-03-26 18:17:14 -04:00
firewire media: firewire: firedtv-avc.c: replace BUG with proper, error return 2023-08-10 07:58:37 +02:00
i2c media: i2c: imx290: Fix IMX920 typo 2024-03-26 18:17:10 -04:00
mc media: mc: Expand MUST_CONNECT flag to always require an enabled link 2024-04-03 15:32:03 +02:00
mmc
pci media: sta2x11: fix irq handler cast 2024-04-13 13:10:05 +02:00
platform media: mediatek: vcodec: adding lock to protect decoder context list 2024-04-13 13:10:11 +02:00
radio media: radio-si476x: don't fill in bus_info 2023-09-27 10:47:23 +02:00
rc media: pwm-ir-tx: Depend on CONFIG_HIGH_RES_TIMERS 2024-02-01 13:49:39 +01:00
spi
test-drivers media updates for v6.8-rc1 2024-01-12 14:29:48 -08:00
tuners media: xc4000: Fix atomicity violation in xc4000_get_frequency 2024-04-03 15:32:02 +02:00
usb media: usbtv: Remove useless locks in usbtv_video_free() 2024-03-26 18:17:16 -04:00
v4l2-core media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity 2024-03-26 18:17:02 -04:00
Kconfig
Makefile