linux/drivers/gpu/drm/vc4
Linmao Li 6273dd3ffb
drm/vc4: Shut down BO cache timer before teardown
The BO cache timer callback schedules time_work, and time_work can rearm
the timer through vc4_bo_cache_free_old().

vc4_bo_cache_destroy() deletes the timer and then cancels the work, which
does not break that cycle: the work being cancelled can rearm the timer,
and the timer then queues work again after teardown.

Use timer_shutdown_sync() instead, so the timer cannot be rearmed and the
cycle ends with cancel_work_sync().

Fixes: c826a6e106 ("drm/vc4: Add a BO cache.")
Cc: stable@vger.kernel.org
Signed-off-by: Linmao Li <lilinmao@kylinos.cn>
Link: https://patch.msgid.link/20260720084426.1632508-1-lilinmao@kylinos.cn
Reviewed-by: Maíra Canal <mcanal@igalia.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
2026-07-23 20:07:23 -03:00
..
tests drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
Kconfig
Makefile
vc4_bo.c drm/vc4: Shut down BO cache timer before teardown 2026-07-23 20:07:23 -03:00
vc4_crtc.c drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
vc4_debugfs.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
vc4_dpi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
vc4_drv.c drm/vc4: Clean-up UAPI header inclusion 2026-04-02 10:21:12 -03:00
vc4_drv.h drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
vc4_dsi.c drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
vc4_fence.c
vc4_gem.c drm-misc-next for v7.1-rc1: 2026-05-06 10:12:25 +10:00
vc4_hdmi_phy.c
vc4_hdmi_regs.h
vc4_hdmi.c drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
vc4_hdmi.h drm/display: hdmi: Use drm_output_color_format instead of hdmi_colorspace 2026-03-24 13:54:35 +01:00
vc4_hvs.c drm/vc4: hvs/v3d: Fix null dereference in unbind 2026-07-22 11:29:29 -03:00
vc4_irq.c drm/vc4: Use devm_request_irq() for automatic cleanup 2026-04-02 10:21:12 -03:00
vc4_kms.c drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00
vc4_packet.h
vc4_perfmon.c Merge drm/drm-next into drm-misc-next 2026-02-23 11:48:20 +01:00
vc4_plane.c drm-misc-next for v7.1-rc1: 2026-05-06 10:12:25 +10:00
vc4_qpu_defines.h
vc4_regs.h
vc4_render_cl.c drm/vc4: Clean-up UAPI header inclusion 2026-04-02 10:21:12 -03:00
vc4_trace_points.c
vc4_trace.h
vc4_txp.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
vc4_v3d.c drm/vc4: hvs/v3d: Fix null dereference in unbind 2026-07-22 11:29:29 -03:00
vc4_validate_shaders.c drm/vc4: fix krealloc() memory leak 2026-06-09 15:29:57 -03:00
vc4_validate.c drm/vc4: Clean-up UAPI header inclusion 2026-04-02 10:21:12 -03:00
vc4_vec.c drm: Rename struct drm_atomic_state to drm_atomic_commit 2026-05-04 14:05:04 +10:00