• Daniel Vetter's avatar
    drm/i915: Unbreak gpu reset vs. modeset locking · 4706ca77
    Daniel Vetter authored
    Taking the modeset locks unconditionally isn't the greatest idea,
    because atm that part is still broken and times out (and then atomic
    keels over). And there's really no reason to do so, the old code
    didn't do that either.
    
    To make the patch a bit simpler let's also nuke 2 cases that are only
    around for the old mmioflip paths. Atomic nonblocking workers will not
    die (minus bugs) when a gpu reset happens.
    
    And of course this doesn't fix any of the gpu reset vs. modeset
    deadlock fun, but it at least stop modern CI machines from keeling
    over all over the place for no reason at all.
    
    And we still have the explicit testcases to run the fake gpu reset, so
    coverage isn't that much worse.
    
    v2: Split out additional changes on top, restrict this to purely reducing
    the critical section of modeset locks.
    
    v2: Review from Maarten
    - update comments
    - don't oops when state is NULL in intel_finish_reset, but try to at
      least still drop locks properly. The hw is going to be toast anyway.
    
    Fixes: 73974893 ("drm/i915: Fix modeset handling during gpu reset, v5.")
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170719125502.25696-3-daniel.vetter@ffwll.ch
    (cherry picked from commit ce87ea15)
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    4706ca77
intel_display.c 449 KB