drm/amdgpu: fix the issue that retry constantly once the buffer is oversize
authorHuang Rui <ray.huang@amd.com>
Sat, 30 Jan 2021 09:14:30 +0000 (17:14 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 2 Feb 2021 15:47:47 +0000 (10:47 -0500)
We cannot modify initial_domain every time while the retry starts. That
will cause the busy waiting that unable to switch to GTT while the vram
is not enough.

Fixes: f8aab60422c3 ("drm/amdgpu: Initialise drm_gem_object_funcs for imported BOs")

Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c

index a5c42c3004a0beb21cb52756cce54a40a33ce4cf..b443907afceadfebab03bec153292bff145d5a0a 100644 (file)
@@ -269,8 +269,8 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
                resv = vm->root.base.bo->tbo.base.resv;
        }
 
-retry:
        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);