drm/xe: Invert runnable_state / pending enable check and assert

Rather than checking for pending enable and asserting runnable_state ==
1 in sched done handler, invert these. This is more robust code taking
action based on the G2H message and asserting KMD tracking state is
correct.

Suggested-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240614061343.2931649-1-matthew.brost@intel.com
This commit is contained in:
Matthew Brost
2024-06-13 23:13:43 -07:00
parent 2b79878b07
commit 0d39640ace

View File

@@ -1782,8 +1782,8 @@ static void handle_sched_done(struct xe_guc *guc, struct xe_exec_queue *q,
{
trace_xe_exec_queue_scheduling_done(q);
if (exec_queue_pending_enable(q)) {
xe_gt_assert(guc_to_gt(guc), runnable_state == 1);
if (runnable_state == 1) {
xe_gt_assert(guc_to_gt(guc), exec_queue_pending_enable(q));
q->guc->resume_time = ktime_get();
clear_exec_queue_pending_enable(q);