diff options
| author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2024-05-28 22:21:34 +0200 | 
|---|---|---|
| committer | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2024-05-28 22:21:34 +0200 | 
| commit | f73a058be5d70dd81a43f16b2bbff4b1576a7af8 (patch) | |
| tree | b7959c01cf7a5d95c7c4d5b61929ff9123370322 /drivers/gpu/drm/lima/lima_sched.c | |
| parent | 6cb05d89fd62a76a9b74bd16211fb0930e89fea8 (diff) | |
| parent | 3e049b6b8f32f25c6967f4cffd8eac6e1e5316f6 (diff) | |
Merge remote-tracking branch 'drm/drm-fixes' into drm-misc-fixes
v6.10-rc1 is released, forward from v6.9
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/lima/lima_sched.c')
| -rw-r--r-- | drivers/gpu/drm/lima/lima_sched.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c index 00b19adfc888..bbf3f8feab94 100644 --- a/drivers/gpu/drm/lima/lima_sched.c +++ b/drivers/gpu/drm/lima/lima_sched.c @@ -422,12 +422,21 @@ static enum drm_gpu_sched_stat lima_sched_timedout_job(struct drm_sched_job *job  	 */  	for (i = 0; i < pipe->num_processor; i++)  		synchronize_irq(pipe->processor[i]->irq); +	if (pipe->bcast_processor) +		synchronize_irq(pipe->bcast_processor->irq);  	if (dma_fence_is_signaled(task->fence)) {  		DRM_WARN("%s unexpectedly high interrupt latency\n", lima_ip_name(ip));  		return DRM_GPU_SCHED_STAT_NOMINAL;  	} +	/* +	 * The task might still finish while this timeout handler runs. +	 * To prevent a race condition on its completion, mask all irqs +	 * on the running core until the next hard reset completes. +	 */ +	pipe->task_mask_irq(pipe); +  	if (!pipe->error)  		DRM_ERROR("%s job timeout\n", lima_ip_name(ip));  | 
