drm/xe/bb: assert width in xe_bb_create_job()
authorMatthew Auld <matthew.auld@intel.com>
Wed, 20 Mar 2024 11:27:31 +0000 (11:27 +0000)
committerMatthew Auld <matthew.auld@intel.com>
Thu, 21 Mar 2024 08:29:30 +0000 (08:29 +0000)
The queue width will determine the number of batch buffer emitted into
the ring. In the case of xe_bb_create_job() we pass exactly one batch
address, therefore add an assert for the width to make sure we don't go
out of bounds. While here also convert to the helper to determine if the
queue is migration based.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240320112730.219854-3-matthew.auld@intel.com
drivers/gpu/drm/xe/xe_bb.c

index 7c124475c42899acc8614d1a3faf89bcadab11ae..a35e0781b7b9513635914431181ba2e2ffb09409 100644 (file)
@@ -96,7 +96,8 @@ struct xe_sched_job *xe_bb_create_job(struct xe_exec_queue *q,
 {
        u64 addr = xe_sa_bo_gpu_addr(bb->bo);
 
-       xe_gt_assert(q->gt, !(q->vm && q->vm->flags & XE_VM_FLAG_MIGRATION));
+       xe_gt_assert(q->gt, !xe_sched_job_is_migration(q));
+       xe_gt_assert(q->gt, q->width == 1);
        return __xe_bb_create_job(q, bb, &addr);
 }