mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
drm/xe/guc_submit: Make suspend_wait interruptible
Rely on wait_event_interruptible_timeout() to put the process to sleep with TASK_INTERRUPTIBLE. It allows using this function in interruptible context. v2: Propagate error on wait_event_interruptible_timeout (Matt Brost) Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Signed-off-by: Matthew Brost <matthew.brost@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240809155156.1955925-3-francois.dugast@intel.com
This commit is contained in:
parent
f784750c67
commit
3dc6da76ae
|
@ -1628,11 +1628,11 @@ static int guc_exec_queue_suspend_wait(struct xe_exec_queue *q)
|
|||
* suspend_pending upon kill but to be paranoid but races in which
|
||||
* suspend_pending is set after kill also check kill here.
|
||||
*/
|
||||
ret = wait_event_timeout(q->guc->suspend_wait,
|
||||
!READ_ONCE(q->guc->suspend_pending) ||
|
||||
exec_queue_killed(q) ||
|
||||
guc_read_stopped(guc),
|
||||
HZ * 5);
|
||||
ret = wait_event_interruptible_timeout(q->guc->suspend_wait,
|
||||
!READ_ONCE(q->guc->suspend_pending) ||
|
||||
exec_queue_killed(q) ||
|
||||
guc_read_stopped(guc),
|
||||
HZ * 5);
|
||||
|
||||
if (!ret) {
|
||||
xe_gt_warn(guc_to_gt(guc),
|
||||
|
@ -1642,7 +1642,7 @@ static int guc_exec_queue_suspend_wait(struct xe_exec_queue *q)
|
|||
return -ETIME;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ret < 0 ? ret : 0;
|
||||
}
|
||||
|
||||
static void guc_exec_queue_resume(struct xe_exec_queue *q)
|
||||
|
|
Loading…
Reference in New Issue
Block a user