• Daniel Vetter's avatar
    drm/i915: properly SIGBUS on I/O errors · a9340cca
    Daniel Vetter authored
    ... instead of looping endless with no hope of ever serving that
    page-fault. We only need to break out of this loop when the gpu died,
    to run the reset work (and hopefully resurrect it).
    
    To clarify questions Chris raised on irc: This is about handling I/O
    errors not from our own code, but e.g. when the disk died when trying
    to swap in a gem bo. So this patch remidies the issue that the current
    handling only handles gpu-death-induced cases of -EIO. Admittedly,
    dying disks are much rarer than hanging gpus ...To clarify questions
    Chris raised on irc: This is about handling I/O errors not from our
    own code, but e.g. when the disk died when trying to swap in a gem bo.
    So this patch remidies the issue that the current handling only
    handles gpu-death-induced cases of -EIO. Admittedly, dying disks are
    much rarer than hanging gpus ...
    
    This seems to have been lost in:
    
    commit d9bc7e9f
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Mon Feb 7 13:09:31 2011 +0000
    
        drm/i915: Fix infinite loop regression from 21dd3734Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Tested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-Off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    a9340cca
i915_gem.c 106 KB