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 1d39a8c53b3a3c2c075171b8ffb89f19b7937e51..c95728c45ea483e99e02aea0a3d571c6034d38f4 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;