mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-19 14:58:53 +07:00
drm/i915: Remove 'faked' request from LRC submission
The LRC submission code requires a request for tracking purposes. It does not actually require that request to 'complete' it simply uses it for keeping hold of reference counts on contexts and such like. Previously, the fall back path of polling for space in the ring would start by submitting any outstanding work that was sat in the buffer. This submission was not done as part of the request that that work was owned by because that would lead to complications with the request being submitted twice. Instead, a null request structure was passed in to the submit call and a fake one was created. That fall back path has long since been obsoleted and has now been removed. Thus there is never any need to fake up a request structure. This patch removes that code. A couple of sanity check warnings are added as well, just in case. For: VIZ-5115 Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Reviewed-by: Thomas Daniel <thomas.daniel@intel.com> Reviewed-by: Tomas Elf <tomas.elf@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
fcfa423cbb
commit
9bb1af4406
@ -555,22 +555,11 @@ static int execlists_context_queue(struct intel_engine_cs *ring,
|
||||
if (to != ring->default_context)
|
||||
intel_lr_context_pin(ring, to);
|
||||
|
||||
if (!request) {
|
||||
/*
|
||||
* If there isn't a request associated with this submission,
|
||||
* create one as a temporary holder.
|
||||
*/
|
||||
request = kzalloc(sizeof(*request), GFP_KERNEL);
|
||||
if (request == NULL)
|
||||
return -ENOMEM;
|
||||
request->ring = ring;
|
||||
request->ctx = to;
|
||||
kref_init(&request->ref);
|
||||
i915_gem_context_reference(request->ctx);
|
||||
} else {
|
||||
i915_gem_request_reference(request);
|
||||
WARN_ON(to != request->ctx);
|
||||
}
|
||||
WARN_ON(!request);
|
||||
WARN_ON(to != request->ctx);
|
||||
|
||||
i915_gem_request_reference(request);
|
||||
|
||||
request->tail = tail;
|
||||
|
||||
spin_lock_irq(&ring->execlist_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user