drm/xe: Fix hidden gotcha regression with bo create
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 12 Jan 2023 22:25:36 +0000 (17:25 -0500)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 12 Dec 2023 19:06:00 +0000 (14:06 -0500)
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 <maarten.lankhorst@linux.intel.com>
Reviewed-by: Philippe Lecluse <philippe.lecluse1@gmail.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_bo.h
drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c

index 8d8a3332dbc861008f568439f8f9a53b25979002..8c2cdbe51ab5396440842f8e499fcb31e94b79d3 100644 (file)
 #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)
index 21ca7f79e63bec8cfcf3c41253c4a789e416361c..b4e9c88644e479c0cdb921abdf961c17a8761262 100644 (file)
@@ -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;