kernel_samsung_a53x/drivers/media/platform/qcom/venus
Zheng Wang f56156a55e media: venus: fix use after free bug in venus_remove due to race condition
commit c5a85ed88e043474161bbfe54002c89c1cb50ee2 upstream.

in venus_probe, core->work is bound with venus_sys_error_handler, which is
used to handle error. The code use core->sys_err_done to make sync work.
The core->work is started in venus_event_notify.

If we call venus_remove, there might be an unfished work. The possible
sequence is as follows:

CPU0                  CPU1

                     |venus_sys_error_handler
venus_remove         |
hfi_destroy	 		 |
venus_hfi_destroy	 |
kfree(hdev);	     |
                     |hfi_reinit
					 |venus_hfi_queues_reinit
                     |//use hdev

Fix it by canceling the work in venus_remove.

Cc: stable@vger.kernel.org
Fixes: af2c3834c8ca ("[media] media: venus: adding core part and helper functions")
Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Signed-off-by: Stanimir Varbanov <stanimir.k.varbanov@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:21:45 +01:00
..
core.c media: venus: fix use after free bug in venus_remove due to race condition 2024-11-23 23:21:45 +01:00
core.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dbgfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dbgfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
firmware.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
firmware.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
helpers.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
helpers.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_cmds.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_cmds.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_helper.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_msgs.c media: venus: hfi: fix the check to handle session buffer requirement 2024-11-18 11:43:31 +01:00
hfi_msgs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_parser.c media: venus: hfi: add checks to handle capabilities from firmware 2024-11-18 11:43:31 +01:00
hfi_parser.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_venus.c media: venus: hfi: add checks to perform sanity on queue pointers 2024-11-18 11:43:20 +01:00
hfi_venus.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hfi_venus_io.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pm_helpers.c media: qcom: venus: fix incorrect return value 2024-11-23 23:20:44 +01:00
pm_helpers.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vdec.c media: venus: fix use after free in vdec_close 2024-11-23 23:20:12 +01:00
vdec.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vdec_ctrls.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
venc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
venc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
venc_ctrls.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00