diff options
author | Jonathan Gray <jsg@jsg.id.au> | 2013-03-03 17:06:30 +1100 |
---|---|---|
committer | Jonathan Gray <jsg@jsg.id.au> | 2013-03-03 17:06:30 +1100 |
commit | 9204ef1c7a48239a9558bf7666e5a6438d8d6dd9 (patch) | |
tree | 04989718d149dcee9d74cd3e12200619669e39e5 /sys | |
parent | c861914e096a972cbda27b23d9db9db1bc9c1092 (diff) |
make the wait_seqno call in intel_ring_wait_seqno non interruptible
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/drm/intel_ringbuffer.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/pci/drm/intel_ringbuffer.c b/sys/dev/pci/drm/intel_ringbuffer.c index 28a6e258ccf..bfee793a71f 100644 --- a/sys/dev/pci/drm/intel_ringbuffer.c +++ b/sys/dev/pci/drm/intel_ringbuffer.c @@ -1374,9 +1374,21 @@ intel_cleanup_ring_buffer(struct intel_ring_buffer *ring) int intel_ring_wait_seqno(struct intel_ring_buffer *ring, u32 seqno) { + drm_i915_private_t *dev_priv = ring->dev->dev_private; + bool was_interruptible; int ret; + /* XXX As we have not yet audited all the paths to check that + * they are ready for ERESTARTSYS from intel_ring_begin, do not + * allow us to be interruptible by a signal. + */ + was_interruptible = dev_priv->mm.interruptible; + dev_priv->mm.interruptible = false; + ret = i915_wait_seqno(ring, seqno); + + dev_priv->mm.interruptible = was_interruptible; + if (!ret) i915_gem_retire_requests_ring(ring); |