drm/xe/vram: fix lpfn check
authorMatthew Auld <matthew.auld@intel.com>
Tue, 19 Nov 2024 10:19:27 +0000 (10:19 +0000)
committerMatthew Auld <matthew.auld@intel.com>
Tue, 26 Nov 2024 09:36:28 +0000 (09:36 +0000)
Technically we should check the lfpn value and not the place->lpfn, for
the case where the allocation itself could be as large as the entire
region and not be range based, which might result in incorrectly doing a
power-of-two roundup. The allocator itself will already ensure it's
contiguous underneath for such an allocation. This shouldn't fix any
current usecase, but never the less came up from some internal testing.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241119101926.190203-2-matthew.auld@intel.com
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c

index 1d39a8c..c95728c 100644 (file)
@@ -109,7 +109,7 @@ static int xe_ttm_vram_mgr_new(struct ttm_resource_manager *man,
                goto error_unlock;
        }
 
-       if (place->fpfn + (size >> PAGE_SHIFT) != place->lpfn &&
+       if (place->fpfn + (size >> PAGE_SHIFT) != lpfn &&
            place->flags & TTM_PL_FLAG_CONTIGUOUS) {
                size = roundup_pow_of_two(size);
                min_page_size = size;