aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 4a9faea626db..18f802d674cd 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1050,6 +1050,7 @@ int
1050i915_gem_pwrite_ioctl(struct drm_device *dev, void *data, 1050i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
1051 struct drm_file *file) 1051 struct drm_file *file)
1052{ 1052{
1053 struct drm_i915_private *dev_priv = dev->dev_private;
1053 struct drm_i915_gem_pwrite *args = data; 1054 struct drm_i915_gem_pwrite *args = data;
1054 struct drm_i915_gem_object *obj; 1055 struct drm_i915_gem_object *obj;
1055 int ret; 1056 int ret;
@@ -1069,9 +1070,11 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
1069 return -EFAULT; 1070 return -EFAULT;
1070 } 1071 }
1071 1072
1073 intel_runtime_pm_get(dev_priv);
1074
1072 ret = i915_mutex_lock_interruptible(dev); 1075 ret = i915_mutex_lock_interruptible(dev);
1073 if (ret) 1076 if (ret)
1074 return ret; 1077 goto put_rpm;
1075 1078
1076 obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); 1079 obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
1077 if (&obj->base == NULL) { 1080 if (&obj->base == NULL) {
@@ -1123,6 +1126,9 @@ out:
1123 drm_gem_object_unreference(&obj->base); 1126 drm_gem_object_unreference(&obj->base);
1124unlock: 1127unlock:
1125 mutex_unlock(&dev->struct_mutex); 1128 mutex_unlock(&dev->struct_mutex);
1129put_rpm:
1130 intel_runtime_pm_put(dev_priv);
1131
1126 return ret; 1132 return ret;
1127} 1133}
1128 1134