1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/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 drm/vmwgfx: cleanup comments 2022-08-04 11:30:46 -04:00
Kconfig drm/vmwgfx: Port the framebuffer code to drm fb helpers 2022-10-25 12:42:27 -04:00
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 drm/vmwgfx: Update device headers 2021-06-16 14:27:00 -04:00
vmwgfx_binding.c drm/vmwgfx: add support for updating only offsets of constant buffers 2021-12-09 13:16:30 -05:00
vmwgfx_binding.h drm/vmwgfx: add support for updating only offsets of constant buffers 2021-12-09 13:16:30 -05:00
vmwgfx_blit.c drm/ttm: rework on ttm_resource to use size_t type 2022-10-27 11:42:58 +02:00
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.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cmdbuf_res.c drm/vmwgfx: Remove vmwgfx_hashtab 2022-10-25 12:42:25 -04: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 drm/vmwgfx: Update device headers 2021-06-16 14:27:00 -04:00
vmwgfx_devcaps.h drm/vmwgfx: Update device headers 2021-06-16 14:27:00 -04:00
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 drm/vmwgfx: remove vmw_wait_dma_fence 2022-02-02 16:15:37 +01:00
vmwgfx_gem.c Linux 6.6-rc7 2023-10-23 18:20:06 +10:00
vmwgfx_gmr.c drm/ttm: merge ttm_bo_api.h and ttm_bo_driver.h v2 2022-12-06 12:54:14 +01:00
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 drm/vmwgfx: Allow querying of the SVGA PCI id from the userspace 2022-03-11 13:29:35 -05:00
vmwgfx_irq.c drm/vmwgfx: Implement MSI/MSI-X support for IRQs 2022-03-11 13:29:37 -05:00
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 drm/vmwgfx: Add a mksstat counter for cotable resizes 2022-10-25 12:42:30 -04:00
vmwgfx_mob.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_msg.c drm/vmwgfx: Print errors when running on broken/unsupported configs 2023-04-11 12:29:30 -04: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_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 drm/vmwgfx: Implement DRIVER_GEM 2021-12-09 13:16:16 -05:00
vmwgfx_reg.h drm/vmwgfx: Add basic support for SVGA3 2021-05-11 13:37:15 -04:00
vmwgfx_resource.c drm/vmwgfx: Keep a gem reference to user bos in surfaces 2023-10-09 15:53:30 -04:00
vmwgfx_resource_priv.h drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05: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 drm/vmwgfx: cleanup comments 2022-08-04 11:30:46 -04:00
vmwgfx_so.c flexible-array transformations for 6.4-rc1 2023-04-26 08:25:57 -07:00
vmwgfx_so.h drm/vmwgfx: support SVGA_3D_CMD_DX_DEFINE_RASTERIZER_STATE_V2 command 2021-12-09 13:16:27 -05:00
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 drm/ttm: merge ttm_bo_api.h and ttm_bo_driver.h v2 2022-12-06 12:54:14 +01:00
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