]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdkfd: Align expected_queue_size to PAGE_SIZE
authorDonet Tom <donettom@linux.ibm.com>
Mon, 23 Mar 2026 04:28:35 +0000 (09:58 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 30 Mar 2026 20:11:29 +0000 (16:11 -0400)
The AQL queue size can be 4K, but the minimum buffer object (BO)
allocation size is PAGE_SIZE. On systems with a page size larger
than 4K, the expected queue size does not match the allocated BO
size, causing queue creation to fail.

Align the expected queue size to PAGE_SIZE so that it matches the
allocated BO size and allows queue creation to succeed.

Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit b01cd158a2f5230b137396c5f8cda3fc780abbc2)

drivers/gpu/drm/amd/amdkfd/kfd_queue.c

index bbe869ceae3f0aa9b74de44dc184f9f14ad9f3a3..e1a922bb2ab75a29fa0e248a319a7eebdf6d5f82 100644 (file)
@@ -249,10 +249,10 @@ int kfd_queue_acquire_buffers(struct kfd_process_device *pdd, struct queue_prope
            topo_dev->node_props.gfx_target_version < 90000)
                /* metadata_queue_size not supported on GFX7/GFX8 */
                expected_queue_size =
-                       properties->queue_size / 2;
+                       PAGE_ALIGN(properties->queue_size / 2);
        else
                expected_queue_size =
-                       properties->queue_size + properties->metadata_queue_size;
+                       PAGE_ALIGN(properties->queue_size + properties->metadata_queue_size);
 
        vm = drm_priv_to_vm(pdd->drm_priv);
        err = amdgpu_bo_reserve(vm->root.bo, false);