Avoid NULL master_priv access in i915 kernel driver
In several places, including the interrupt handler, the driver assumes
it can deref. dev->primary->master->driver_priv if dev->primary->master
is non-NULL. This wasn't true if drm_open_helper was midway through, so
rearrange the initialization order.
It looks as if http://crbug.com/221684 was caused by this, although I
have no direct repro. I can produce the same kernel crash by adding a
delay to drm_open_helper and unplugging the monitor at the right time.
v2: Address this in drm_open_helper instead of the various access points --
basically Stephane's fix.
BUG=chromium:221684
TEST=The monitor unplug scenario doesn't bring down Link
Change-Id: I545f79422577cfe4cdd96e430b6bc902ccb1cab3
Reviewed-on: https://gerrit.chromium.org/gerrit/50407
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Commit-Queue: Stuart Abercrombie <sabercrombie@chromium.org>
Tested-by: Stuart Abercrombie <sabercrombie@chromium.org>