mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-21 04:53:46 -04:00
drm/i915: Refactor marking a request as EIO
When wedging the device, we cancel all outstanding requests and mark them as EIO. Rather than duplicate the small function to do so between each submission backend, export one. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Andi Shyti <andi.shyti@intel.com> Reviewed-by: Andi Shyti <andi.shyti@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210109163455.28466-3-chris@chris-wilson.co.uk
This commit is contained in:
@@ -245,17 +245,6 @@ static void mock_reset_rewind(struct intel_engine_cs *engine, bool stalled)
|
||||
GEM_BUG_ON(stalled);
|
||||
}
|
||||
|
||||
static void mark_eio(struct i915_request *rq)
|
||||
{
|
||||
if (i915_request_completed(rq))
|
||||
return;
|
||||
|
||||
GEM_BUG_ON(i915_request_signaled(rq));
|
||||
|
||||
i915_request_set_error_once(rq, -EIO);
|
||||
i915_request_mark_complete(rq);
|
||||
}
|
||||
|
||||
static void mock_reset_cancel(struct intel_engine_cs *engine)
|
||||
{
|
||||
struct mock_engine *mock =
|
||||
@@ -269,12 +258,12 @@ static void mock_reset_cancel(struct intel_engine_cs *engine)
|
||||
|
||||
/* Mark all submitted requests as skipped. */
|
||||
list_for_each_entry(rq, &engine->active.requests, sched.link)
|
||||
mark_eio(rq);
|
||||
i915_request_mark_eio(rq);
|
||||
intel_engine_signal_breadcrumbs(engine);
|
||||
|
||||
/* Cancel and submit all pending requests. */
|
||||
list_for_each_entry(rq, &mock->hw_queue, mock.link) {
|
||||
mark_eio(rq);
|
||||
i915_request_mark_eio(rq);
|
||||
__i915_request_submit(rq);
|
||||
}
|
||||
INIT_LIST_HEAD(&mock->hw_queue);
|
||||
|
||||
Reference in New Issue
Block a user