f56156a55e
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> |
||
---|---|---|
.. | ||
am437x | ||
atmel | ||
cadence | ||
coda | ||
davinci | ||
exynos | ||
exynos-gsc | ||
exynos4-is | ||
marvell-ccic | ||
mtk-jpeg | ||
mtk-mdp | ||
mtk-vcodec | ||
mtk-vpu | ||
omap | ||
omap3isp | ||
qcom | ||
rcar-vin | ||
rockchip/rga | ||
s3c-camif | ||
s5p-g2d | ||
s5p-jpeg | ||
s5p-mfc | ||
sti | ||
stm32 | ||
sunxi | ||
ti-vpe | ||
vsp1 | ||
xilinx | ||
aspeed-video.c | ||
fsl-viu.c | ||
imx-pxp.c | ||
imx-pxp.h | ||
Kconfig | ||
m2m-deinterlace.c | ||
Makefile | ||
mx2_emmaprp.c | ||
pxa_camera.c | ||
rcar-fcp.c | ||
rcar_drif.c | ||
rcar_fdp1.c | ||
rcar_jpu.c | ||
renesas-ceu.c | ||
sh_vou.c | ||
via-camera.c | ||
via-camera.h | ||
video-mux.c |