Best if we send these as a new series to unconfuse CI. On Fri, Nov 04, 2016 at 06:18:26PM +0530, akash.goel@xxxxxxxxx wrote: > +static int do_migrate_page(struct drm_i915_gem_object *obj) > +{ > + struct drm_i915_private *dev_priv = to_i915(obj->base.dev); > + int ret = 0; > + > + if (!can_migrate_page(obj)) > + return -EBUSY; > + > + /* HW access would be required for a GGTT bound object, for which > + * device has to be kept awake. But a deadlock scenario can arise if > + * the attempt is made to resume the device, when either a suspend > + * or a resume operation is already happening concurrently from some > + * other path and that only also triggers compaction. So only unbind > + * if the device is currently awake. > + */ > + if (!intel_runtime_pm_get_if_in_use(dev_priv)) > + return -EBUSY; > + > + i915_gem_object_get(obj); > + if (!unsafe_drop_pages(obj)) > + ret = -EBUSY; > + i915_gem_object_put(obj); Since the object release changes, we can now do this without the i915_gem_object_get / i915_gem_object_put (as we are guarded by the BKL struct_mutex). -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx