* completed yet, and to accomplish that, i915_gem_object_wait_migration()
  * must be called.
  *
- * This function is a bit more permissive than i915_gem_object_can_migrate()
- * to allow for migrating objects where the caller knows exactly what is
- * happening. For example within selftests. More specifically this
- * function allows migrating I915_BO_ALLOC_USER objects to regions
- * that are not in the list of allowable regions.
- *
  * Note: the @ww parameter is not used yet, but included to make sure
  * callers put some effort into obtaining a valid ww ctx if one is
  * available.
        if (obj->mm.region == mr)
                return 0;
 
-       if (!i915_gem_object_evictable(obj))
-               return -EBUSY;
-
-       if (!obj->ops->migrate)
-               return -EOPNOTSUPP;
+       if (!i915_gem_object_can_migrate(obj, id))
+               return -EINVAL;
 
        return obj->ops->migrate(obj, mr);
 }
 
                if (err)
                        continue;
 
-               if (!i915_gem_object_can_migrate(obj, dst)) {
-                       err = -EINVAL;
-                       continue;
-               }
-
                err = i915_gem_object_migrate(obj, &ww, dst);
                if (err)
                        continue;
                return err;
 
        if (i915_gem_object_is_lmem(obj)) {
-               if (!i915_gem_object_can_migrate(obj, INTEL_REGION_SMEM)) {
-                       pr_err("object can't migrate to smem.\n");
-                       return -EINVAL;
-               }
-
                err = i915_gem_object_migrate(obj, ww, INTEL_REGION_SMEM);
                if (err) {
                        pr_err("Object failed migration to smem\n");
                }
 
        } else {
-               if (!i915_gem_object_can_migrate(obj, INTEL_REGION_LMEM)) {
-                       pr_err("object can't migrate to lmem.\n");
-                       return -EINVAL;
-               }
-
                err = i915_gem_object_migrate(obj, ww, INTEL_REGION_LMEM);
                if (err) {
                        pr_err("Object failed migration to lmem\n");