bp.resv = resv;
        bp.preferred_domain = initial_domain;
        bp.flags = flags;
-       bp.domain = initial_domain;
+       bp.domain = initial_domain | AMDGPU_GEM_DOMAIN_CPU;
        bp.bo_ptr_size = sizeof(struct amdgpu_bo);
 
        r = amdgpu_bo_create_user(adev, &bp, &ubo);
        }
 
        initial_domain = (u32)(0xffffffff & args->in.domains);
-retry:
        r = amdgpu_gem_object_create(adev, size, args->in.alignment,
-                                    initial_domain,
-                                    flags, ttm_bo_type_device, resv, &gobj);
+                                    initial_domain, flags, ttm_bo_type_device,
+                                    resv, &gobj);
        if (r && r != -ERESTARTSYS) {
-               if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) {
-                       flags &= ~AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
-                       goto retry;
-               }
-
-               if (initial_domain == AMDGPU_GEM_DOMAIN_VRAM) {
-                       initial_domain |= AMDGPU_GEM_DOMAIN_GTT;
-                       goto retry;
-               }
                DRM_DEBUG("Failed to allocate GEM object (%llu, %d, %llu, %d)\n",
                                size, initial_domain, args->in.alignment, r);
        }
 
                bo->flags |= AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE;
 
        bo->tbo.bdev = &adev->mman.bdev;
-       if (bp->domain & (AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA |
-                         AMDGPU_GEM_DOMAIN_GDS))
-               amdgpu_bo_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_CPU);
-       else
-               amdgpu_bo_placement_from_domain(bo, bp->domain);
+       amdgpu_bo_placement_from_domain(bo, bp->domain);
        if (bp->type == ttm_bo_type_kernel)
                bo->tbo.priority = 1;