| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-57921: drm/amdgpu: Add a lock when accessing the buddy trim function |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| drm/amdgpu: Add a lock when accessing the buddy trim function |
| |
| When running YouTube videos and Steam games simultaneously, |
| the tester found a system hang / race condition issue with |
| the multi-display configuration setting. Adding a lock to |
| the buddy allocator's trim function would be the solution. |
| |
| <log snip> |
| [ 7197.250436] general protection fault, probably for non-canonical address 0xdead000000000108 |
| [ 7197.250447] RIP: 0010:__alloc_range+0x8b/0x340 [amddrm_buddy] |
| [ 7197.250470] Call Trace: |
| [ 7197.250472] <TASK> |
| [ 7197.250475] ? show_regs+0x6d/0x80 |
| [ 7197.250481] ? die_addr+0x37/0xa0 |
| [ 7197.250483] ? exc_general_protection+0x1db/0x480 |
| [ 7197.250488] ? drm_suballoc_new+0x13c/0x93d [drm_suballoc_helper] |
| [ 7197.250493] ? asm_exc_general_protection+0x27/0x30 |
| [ 7197.250498] ? __alloc_range+0x8b/0x340 [amddrm_buddy] |
| [ 7197.250501] ? __alloc_range+0x109/0x340 [amddrm_buddy] |
| [ 7197.250506] amddrm_buddy_block_trim+0x1b5/0x260 [amddrm_buddy] |
| [ 7197.250511] amdgpu_vram_mgr_new+0x4f5/0x590 [amdgpu] |
| [ 7197.250682] amdttm_resource_alloc+0x46/0xb0 [amdttm] |
| [ 7197.250689] ttm_bo_alloc_resource+0xe4/0x370 [amdttm] |
| [ 7197.250696] amdttm_bo_validate+0x9d/0x180 [amdttm] |
| [ 7197.250701] amdgpu_bo_pin+0x15a/0x2f0 [amdgpu] |
| [ 7197.250831] amdgpu_dm_plane_helper_prepare_fb+0xb2/0x360 [amdgpu] |
| [ 7197.251025] ? try_wait_for_completion+0x59/0x70 |
| [ 7197.251030] drm_atomic_helper_prepare_planes.part.0+0x2f/0x1e0 |
| [ 7197.251035] drm_atomic_helper_prepare_planes+0x5d/0x70 |
| [ 7197.251037] drm_atomic_helper_commit+0x84/0x160 |
| [ 7197.251040] drm_atomic_nonblocking_commit+0x59/0x70 |
| [ 7197.251043] drm_mode_atomic_ioctl+0x720/0x850 |
| [ 7197.251047] ? __pfx_drm_mode_atomic_ioctl+0x10/0x10 |
| [ 7197.251049] drm_ioctl_kernel+0xb9/0x120 |
| [ 7197.251053] ? srso_alias_return_thunk+0x5/0xfbef5 |
| [ 7197.251056] drm_ioctl+0x2d4/0x550 |
| [ 7197.251058] ? __pfx_drm_mode_atomic_ioctl+0x10/0x10 |
| [ 7197.251063] amdgpu_drm_ioctl+0x4e/0x90 [amdgpu] |
| [ 7197.251186] __x64_sys_ioctl+0xa0/0xf0 |
| [ 7197.251190] x64_sys_call+0x143b/0x25c0 |
| [ 7197.251193] do_syscall_64+0x7f/0x180 |
| [ 7197.251197] ? srso_alias_return_thunk+0x5/0xfbef5 |
| [ 7197.251199] ? amdgpu_display_user_framebuffer_create+0x215/0x320 [amdgpu] |
| [ 7197.251329] ? drm_internal_framebuffer_create+0xb7/0x1a0 |
| [ 7197.251332] ? srso_alias_return_thunk+0x5/0xfbef5 |
| |
| (cherry picked from commit 3318ba94e56b9183d0304577c74b33b6b01ce516) |
| |
| The Linux kernel CVE team has assigned CVE-2024-57921 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 6.11 with commit 4a5ad08f537703c35cf7cc29845381805c891d9b and fixed in 6.12.10 with commit 758e3c3054b65336cf0c5f240221f63b4fb98478 |
| Issue introduced in 6.11 with commit 4a5ad08f537703c35cf7cc29845381805c891d9b and fixed in 6.13 with commit 75c8b703e5bded1e33b08fb09b829e7c2c1ed50a |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2024-57921 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/758e3c3054b65336cf0c5f240221f63b4fb98478 |
| https://git.kernel.org/stable/c/75c8b703e5bded1e33b08fb09b829e7c2c1ed50a |