From c343bacfad5db03c4156ff3a44e3a5547afb246f Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Thu, 12 Jan 2023 17:25:36 -0500 Subject: [PATCH] drm/xe: Fix hidden gotcha regression with bo create The bo_create ioctl relied on the internal ordering of memory regions to be the same, make sure we don't allocate stolen instead of VRAM0. Also remove a debug warning left in. Signed-off-by: Maarten Lankhorst Reviewed-by: Philippe Lecluse Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/xe/xe_bo.h | 8 +++++--- drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h index 8d8a3332dbc8..8c2cdbe51ab5 100644 --- a/drivers/gpu/drm/xe/xe_bo.h +++ b/drivers/gpu/drm/xe/xe_bo.h @@ -13,10 +13,12 @@ #define XE_DEFAULT_GTT_SIZE_MB 3072ULL /* 3GB by default */ #define XE_BO_CREATE_USER_BIT BIT(0) +/* The bits below need to be contiguous, or things break */ #define XE_BO_CREATE_SYSTEM_BIT BIT(1) -#define XE_BO_CREATE_STOLEN_BIT BIT(2) -#define XE_BO_CREATE_VRAM0_BIT BIT(3) -#define XE_BO_CREATE_VRAM1_BIT BIT(4) +#define XE_BO_CREATE_VRAM0_BIT BIT(2) +#define XE_BO_CREATE_VRAM1_BIT BIT(3) +/* -- */ +#define XE_BO_CREATE_STOLEN_BIT BIT(4) #define XE_BO_CREATE_VRAM_IF_DGFX(gt) \ (IS_DGFX(gt_to_xe(gt)) ? XE_BO_CREATE_VRAM0_BIT << gt->info.vram_id : \ XE_BO_CREATE_SYSTEM_BIT) diff --git a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c index 21ca7f79e63b..b4e9c88644e4 100644 --- a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c +++ b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c @@ -184,7 +184,6 @@ static int __xe_ttm_stolen_io_mem_reserve_bar2(struct xe_device *xe, mem->bus.offset = cur.start; drm_WARN_ON(&xe->drm, !(mem->placement & TTM_PL_FLAG_CONTIGUOUS)); - WARN_ON_ONCE(1); if (mem->placement & TTM_PL_FLAG_CONTIGUOUS && mgr->mapping) mem->bus.addr = (u8 *)mgr->mapping + mem->bus.offset; -- 2.25.1