aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2018-11-05 21:46:04 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2018-11-06 15:17:26 +0200
commitf45a7977d1140c11f334e01a9f77177ed68e3bfa (patch)
tree8239614249620176fd93f79e8a5cc56e5056a1b2
parentdrm/i915: Break long iterations for get/put shmemfs pages (diff)
downloadwireguard-linux-f45a7977d1140c11f334e01a9f77177ed68e3bfa.tar.xz
wireguard-linux-f45a7977d1140c11f334e01a9f77177ed68e3bfa.zip
drm/i915: Don't oops during modeset shutdown after lpe audio deinit
We deinit the lpe audio device before we call drm_atomic_helper_shutdown(), which means the platform device may already be gone when it comes time to shut down the crtc. As we don't know when the last reference to the platform device gets dropped by the audio driver we can't assume that the device and its data are still around when turning off the crtc. Mark the platform device as gone as soon as we do the audio deinit. Cc: stable@vger.kernel.org Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181105194604.6994-1-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--drivers/gpu/drm/i915/intel_lpe_audio.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_lpe_audio.c b/drivers/gpu/drm/i915/intel_lpe_audio.c
index cdf19553ffac..5d5336fbe7b0 100644
--- a/drivers/gpu/drm/i915/intel_lpe_audio.c
+++ b/drivers/gpu/drm/i915/intel_lpe_audio.c
@@ -297,8 +297,10 @@ void intel_lpe_audio_teardown(struct drm_i915_private *dev_priv)
lpe_audio_platdev_destroy(dev_priv);
irq_free_desc(dev_priv->lpe_audio.irq);
-}
+ dev_priv->lpe_audio.irq = -1;
+ dev_priv->lpe_audio.platdev = NULL;
+}
/**
* intel_lpe_audio_notify() - notify lpe audio event