• Chris Wilson's avatar
    drm/i915: Restore engine->submit_request before unwedging · 2e8f9d32
    Chris Wilson authored
    When we wedge the device, we override engine->submit_request with a nop
    to ensure that all in-flight requests are marked in error. However, igt
    would like to unwedge the device to test -EIO handling. This requires us
    to flush those in-flight requests and restore the original
    engine->submit_request.
    
    v2: Use a vfunc to unify enabling request submission to engines
    v3: Split new vfunc to a separate patch.
    v4: Make the wait interruptible -- the third party fences we wait upon
    may be indefinitely broken, so allow the reset to be aborted.
    
    Fixes: 821ed7df ("drm/i915: Update reset path to fix incomplete requests")
    Testcase: igt/gem_eio
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> #v3
    Link: http://patchwork.freedesktop.org/patch/msgid/20170316171305.12972-3-chris@chris-wilson.co.uk
    2e8f9d32
i915_drv.c 74.5 KB