drm/i915: Unbreak gpu reset vs. modeset locking
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 19 Jul 2017 12:54:55 +0000 (14:54 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 20 Jul 2017 08:46:05 +0000 (10:46 +0200)
commitce87ea15ebc60a9f8f156b2549f7b2cf7fe48d04
tree64692e88c52584252fcc7a8a91e648ef68e71850
parentafa8ce5b3080146940f0fbe3363a139e777c46ac
drm/i915: Unbreak gpu reset vs. modeset locking

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: 739748939974 ("drm/i915: Fix modeset handling during gpu reset, v5.")
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170719125502.25696-3-daniel.vetter@ffwll.ch
drivers/gpu/drm/i915/intel_display.c