summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pci/drm/i915_dma.c15
-rw-r--r--sys/dev/pci/drm/i915_irq.c2
2 files changed, 14 insertions, 3 deletions
diff --git a/sys/dev/pci/drm/i915_dma.c b/sys/dev/pci/drm/i915_dma.c
index 9a3d6707c86..70656ea3bfd 100644
--- a/sys/dev/pci/drm/i915_dma.c
+++ b/sys/dev/pci/drm/i915_dma.c
@@ -594,10 +594,15 @@ int i915_quiescent(struct drm_device *dev)
int i915_flush_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{
+ int ret;
LOCK_TEST_WITH_RETURN(dev, file_priv);
- return i915_quiescent(dev);
+ DRM_LOCK();
+ ret = i915_quiescent(dev);
+ DRM_UNLOCK();
+
+ return (ret);
}
int i915_batchbuffer(struct drm_device *dev, void *data,
@@ -627,7 +632,9 @@ int i915_batchbuffer(struct drm_device *dev, void *data,
sizeof(struct drm_clip_rect)))
return EFAULT;
+ DRM_LOCK();
ret = i915_dispatch_batchbuffer(dev, batch);
+ DRM_UNLOCK();
sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
return ret;
@@ -657,7 +664,9 @@ int i915_cmdbuffer(struct drm_device *dev, void *data,
return EFAULT;
}
+ DRM_LOCK();
ret = i915_dispatch_cmdbuffer(dev, cmdbuf);
+ DRM_UNLOCK();
if (ret) {
DRM_ERROR("i915_dispatch_cmdbuffer failed\n");
return ret;
@@ -673,9 +682,9 @@ int i915_flip_bufs(struct drm_device *dev, void *data, struct drm_file *file_pri
LOCK_TEST_WITH_RETURN(dev, file_priv);
-
-
+ DRM_LOCK();
i915_dispatch_flip(dev);
+ DRM_UNLOCK();
return 0;
}
diff --git a/sys/dev/pci/drm/i915_irq.c b/sys/dev/pci/drm/i915_irq.c
index 4ad4824228a..d8e4c3a3921 100644
--- a/sys/dev/pci/drm/i915_irq.c
+++ b/sys/dev/pci/drm/i915_irq.c
@@ -504,7 +504,9 @@ int i915_irq_emit(struct drm_device *dev, void *data,
return EINVAL;
}
+ DRM_LOCK();
result = i915_emit_irq(dev);
+ DRM_UNLOCK();
if (DRM_COPY_TO_USER(emit->irq_seq, &result, sizeof(int))) {
DRM_ERROR("copy_to_user\n");