mirror_ubuntu-kernels/drivers/gpu/drm/vmwgfx
Zack Rusin 9a9e8a7159 drm/vmwgfx: Fix the lifetime of the bo cursor memory
The cleanup can be dispatched while the atomic update is still active,
which means that the memory acquired in the atomic update needs to
not be invalidated by the cleanup. The buffer objects in vmw_plane_state
instead of using the builtin map_and_cache were trying to handle
the lifetime of the mapped memory themselves, leading to crashes.

Use the map_and_cache instead of trying to manage the lifetime of the
buffer objects held by the vmw_plane_state.

Fixes kernel oops'es in IGT's kms_cursor_legacy forked-bo.

Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Fixes: bb6780aa5a ("drm/vmwgfx: Diff cursors when using cmds")
Cc: <stable@vger.kernel.org> # v6.2+
Reviewed-by: Martin Krastev <martin.krastev@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240126200804.732454-6-zack.rusin@broadcom.com
2024-01-30 14:18:21 -05:00
..
device_include
Kconfig
Makefile drm/vmwgfx: Use the common gem mmap instead of the custom code 2023-02-13 21:34:13 -05:00
ttm_object.c drm/vmwgfx: Make all surfaces shareable 2024-01-30 14:18:18 -05:00
ttm_object.h drm/vmwgfx: Make all surfaces shareable 2024-01-30 14:18:18 -05:00
vmw_surface_cache.h
vmwgfx_binding.c
vmwgfx_binding.h
vmwgfx_blit.c
vmwgfx_bo.c drm/ttm: replace busy placement with flags v6 2024-01-25 09:59:44 +01:00
vmwgfx_bo.h drm/vmwgfx: Keep a gem reference to user bos in surfaces 2023-10-09 15:53:30 -04:00
vmwgfx_cmd.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cmdbuf_res.c
vmwgfx_cmdbuf.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_context.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cotable.c drm/vmwgfx: Keep a gem reference to user bos in surfaces 2023-10-09 15:53:30 -04:00
vmwgfx_devcaps.c
vmwgfx_devcaps.h
vmwgfx_drv.c drm: Disable the cursor plane on atomic contexts with virtualized drivers 2023-11-24 11:57:54 +01:00
vmwgfx_drv.h drm/vmwgfx: remove vmw_vram_gmr_placement 2024-01-22 15:26:18 +01:00
vmwgfx_execbuf.c drm/vmwgfx: Fix possible null pointer derefence with invalid contexts 2024-01-26 13:48:06 -05:00
vmwgfx_fence.c drm/vmwgfx: Rename vmw_buffer_object to vmw_bo 2023-02-13 22:37:08 -05:00
vmwgfx_fence.h
vmwgfx_gem.c Linux 6.6-rc7 2023-10-23 18:20:06 +10:00
vmwgfx_gmr.c
vmwgfx_gmrid_manager.c drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node 2024-01-03 22:23:15 -05:00
vmwgfx_ioctl.c
vmwgfx_irq.c
vmwgfx_kms.c drm/vmwgfx: Fix the lifetime of the bo cursor memory 2024-01-30 14:18:21 -05:00
vmwgfx_kms.h drm/vmwgfx: Refactor drm connector probing for display modes 2024-01-30 14:18:16 -05:00
vmwgfx_ldu.c drm/vmwgfx: Refactor drm connector probing for display modes 2024-01-30 14:18:16 -05:00
vmwgfx_mksstat.h
vmwgfx_mob.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_msg_arm64.h treewide: fix up files incorrectly marked executable 2023-01-26 10:05:39 -08:00
vmwgfx_msg_x86.h drm/vmwgfx: Add unwind hints around RBP clobber 2023-06-07 10:03:12 -07:00
vmwgfx_msg.c drm/vmwgfx: Print errors when running on broken/unsupported configs 2023-04-11 12:29:30 -04:00
vmwgfx_overlay.c drm/vmwgfx: Keep a gem reference to user bos in surfaces 2023-10-09 15:53:30 -04:00
vmwgfx_page_dirty.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_prime.c
vmwgfx_reg.h
vmwgfx_resource_priv.h drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_resource.c drm/vmwgfx: Keep a gem reference to user bos in surfaces 2023-10-09 15:53:30 -04:00
vmwgfx_scrn.c drm/vmwgfx: Refactor drm connector probing for display modes 2024-01-30 14:18:16 -05:00
vmwgfx_shader.c drm/vmwgfx: Keep a gem reference to user bos in surfaces 2023-10-09 15:53:30 -04:00
vmwgfx_simple_resource.c
vmwgfx_so.c flexible-array transformations for 6.4-rc1 2023-04-26 08:25:57 -07:00
vmwgfx_so.h
vmwgfx_stdu.c drm/vmwgfx: Refactor drm connector probing for display modes 2024-01-30 14:18:16 -05:00
vmwgfx_streamoutput.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_surface.c drm/vmwgfx: Make all surfaces shareable 2024-01-30 14:18:18 -05:00
vmwgfx_system_manager.c
vmwgfx_ttm_buffer.c drm/ttm: replace busy placement with flags v6 2024-01-25 09:59:44 +01:00
vmwgfx_ttm_glue.c drm/vmwgfx: Use the common gem mmap instead of the custom code 2023-02-13 21:34:13 -05:00
vmwgfx_va.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_validation.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_validation.h drm/vmwgfx: Abstract placement selection 2023-02-13 22:37:55 -05:00