drm/i915: get runtime PM reference around GEM set_tiling IOCTL
authorImre Deak <imre.deak@intel.com>
Mon, 9 Nov 2015 18:16:26 +0000 (20:16 +0200)
committerImre Deak <imre.deak@intel.com>
Tue, 17 Nov 2015 16:43:30 +0000 (18:43 +0200)
After fixing the same issue in the set_caching IOCTL and Chris' request
to check out the possibilities for an improved RPM ref handling I
noticed that we have the same issue in the set_tiling IOCTL. Fix this
up.I didn't see any bug reports about this one, but the GTT unbind
operation on this path accesses the HW, which needs the ref.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1447092986-11165-1-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/i915_gem_tiling.c

index 8a6717cc265c6c0a062d8cae9d4dc966356fa028..7410f6c962e7b2889d8fa239a9f5bcb9c8f4d332 100644 (file)
@@ -176,6 +176,8 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
                return -EINVAL;
        }
 
+       intel_runtime_pm_get(dev_priv);
+
        mutex_lock(&dev->struct_mutex);
        if (obj->pin_display || obj->framebuffer_references) {
                ret = -EBUSY;
@@ -269,6 +271,8 @@ err:
        drm_gem_object_unreference(&obj->base);
        mutex_unlock(&dev->struct_mutex);
 
+       intel_runtime_pm_put(dev_priv);
+
        return ret;
 }