• Chris Wilson's avatar
    drm/i915: Handle ERESTARTSYS during page fault · 1934acbe
    Chris Wilson authored
    commit c715089f upstream.
    
    During a page fault and rebinding the buffer there exists a window for a
    signal to arrive during the i915_wait_request() and trigger a
    ERESTARTSYS. This used to be handled by returning SIGBUS and thereby
    killing the application. Try 'cairo-perf-trace & cairo-test-suite' and
    watch X go boom!
    
    The solution as suggested by H. Peter Anvin is to simply return NOPAGE and
    leave the higher layers to spot we did not fill the page and resubmit
    the page fault.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    [anholt: Mostly squash it with another commit]
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    1934acbe
i915_gem.c 118 KB