All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] drm/i915: Prevent signals from interrupting close()
@ 2014-06-24  1:48 Ben Widawsky
  2014-06-24  1:48 ` [PATCH 2/6] drm/i915: Only mark the ctx as initialised after a SET_CONTEXT operation Ben Widawsky
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Ben Widawsky @ 2014-06-24  1:48 UTC (permalink / raw)
  To: Intel GFX

From: Chris Wilson <chris@chris-wilson.co.uk>

We neither report any unfinished operations during releasing GEM objects
associated with the file, and even if we did, it is bad form to report
-EINTR from a close().

The root cause of the bug that first showed itself during close is that
we do not do proper live tracking of vma and contexts under full-ppgtt,
but this is useful piece of defensive programming enforcing our
userspace API contract.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_dma.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 5e583a1..f6aca71 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1959,9 +1959,18 @@ void i915_driver_lastclose(struct drm_device *dev)
 
 void i915_driver_preclose(struct drm_device *dev, struct drm_file *file_priv)
 {
+	struct drm_i915_private *dev_priv = to_i915(dev);
+	bool was_interruptible;
+
 	mutex_lock(&dev->struct_mutex);
+	was_interruptible = dev_priv->mm.interruptible;
+	WARN_ON(!was_interruptible);
+	dev_priv->mm.interruptible = false;
+
 	i915_gem_context_close(dev, file_priv);
 	i915_gem_release(dev, file_priv);
+
+	dev_priv->mm.interruptible = was_interruptible;
 	mutex_unlock(&dev->struct_mutex);
 }
 
-- 
2.0.0

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-06-24 13:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-24  1:48 [PATCH 1/6] drm/i915: Prevent signals from interrupting close() Ben Widawsky
2014-06-24  1:48 ` [PATCH 2/6] drm/i915: Only mark the ctx as initialised after a SET_CONTEXT operation Ben Widawsky
2014-06-24 13:27   ` Jani Nikula
2014-06-24  1:48 ` [PATCH 3/6] drm/i915: Split up do_switch Ben Widawsky
2014-06-24  1:48 ` [PATCH 4/6] drm/i915: Extract l3 remapping out of ctx switch Ben Widawsky
2014-06-24  1:48 ` [PATCH 5/6] drm/i915/ppgtt: Load address space after mi_set_context Ben Widawsky
2014-06-24  1:48 ` [PATCH 6/6] drm/i915/bdw: Enable full PPGTT Ben Widawsky

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.