xe_tlb_inval_fence_signal(fence);
}
if (!list_empty(&tlb_inval->pending_fences))
- queue_delayed_work(system_wq, &tlb_inval->fence_tdr,
+ queue_delayed_work(tlb_inval->timeout_wq, &tlb_inval->fence_tdr,
timeout_delay);
spin_unlock_irq(&tlb_inval->pending_lock);
}
if (IS_ERR(tlb_inval->job_wq))
return PTR_ERR(tlb_inval->job_wq);
+ tlb_inval->timeout_wq = gt->ordered_wq;
+ if (IS_ERR(tlb_inval->timeout_wq))
+ return PTR_ERR(tlb_inval->timeout_wq);
+
/* XXX: Blindly setting up backend to GuC */
xe_guc_tlb_inval_init_early(>->uc.guc, tlb_inval);
list_add_tail(&fence->link, &tlb_inval->pending_fences);
if (list_is_singular(&tlb_inval->pending_fences))
- queue_delayed_work(system_wq, &tlb_inval->fence_tdr,
+ queue_delayed_work(tlb_inval->timeout_wq, &tlb_inval->fence_tdr,
tlb_inval->ops->timeout_delay(tlb_inval));
spin_unlock_irq(&tlb_inval->pending_lock);
}
if (!list_empty(&tlb_inval->pending_fences))
- mod_delayed_work(system_wq,
+ mod_delayed_work(tlb_inval->timeout_wq,
&tlb_inval->fence_tdr,
tlb_inval->ops->timeout_delay(tlb_inval));
else