Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7e7a93e authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/amdgpu: remove amdgpu_sync_wait



Stop hiding bugs, instead print a proper error when the scheduler
doesn't handle all dependencies.

Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Acked-by: default avatarChunming Zhou <david1.zhou@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6fc13675
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -601,7 +601,6 @@ bool amdgpu_sync_is_idle(struct amdgpu_sync *sync);
int amdgpu_sync_cycle_fences(struct amdgpu_sync *dst, struct amdgpu_sync *src,
int amdgpu_sync_cycle_fences(struct amdgpu_sync *dst, struct amdgpu_sync *src,
			     struct fence *fence);
			     struct fence *fence);
struct fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync);
struct fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync);
int amdgpu_sync_wait(struct amdgpu_sync *sync);
void amdgpu_sync_free(struct amdgpu_sync *sync);
void amdgpu_sync_free(struct amdgpu_sync *sync);
int amdgpu_sync_init(void);
int amdgpu_sync_init(void);
void amdgpu_sync_fini(void);
void amdgpu_sync_fini(void);
+1 −5
Original line number Original line Diff line number Diff line
@@ -166,11 +166,7 @@ static struct fence *amdgpu_job_run(struct amd_sched_job *sched_job)
	}
	}
	job = to_amdgpu_job(sched_job);
	job = to_amdgpu_job(sched_job);


	r = amdgpu_sync_wait(&job->sync);
	BUG_ON(!amdgpu_sync_is_idle(&job->sync));
	if (r) {
		DRM_ERROR("failed to sync wait (%d)\n", r);
		return NULL;
	}


	trace_amdgpu_sched_run_job(job);
	trace_amdgpu_sched_run_job(job);
	r = amdgpu_ib_schedule(job->ring, job->num_ibs, job->ibs,
	r = amdgpu_ib_schedule(job->ring, job->num_ibs, job->ibs,
+0 −19
Original line number Original line Diff line number Diff line
@@ -326,25 +326,6 @@ struct fence *amdgpu_sync_get_fence(struct amdgpu_sync *sync)
	return NULL;
	return NULL;
}
}


int amdgpu_sync_wait(struct amdgpu_sync *sync)
{
	struct amdgpu_sync_entry *e;
	struct hlist_node *tmp;
	int i, r;

	hash_for_each_safe(sync->fences, i, tmp, e, node) {
		r = fence_wait(e->fence, false);
		if (r)
			return r;

		hash_del(&e->node);
		fence_put(e->fence);
		kmem_cache_free(amdgpu_sync_slab, e);
	}

	return 0;
}

/**
/**
 * amdgpu_sync_free - free the sync object
 * amdgpu_sync_free - free the sync object
 *
 *