From f2964ce2e664a29d0b2cb23a7d4c2a004451dd1d Mon Sep 17 00:00:00 2001 From: Christian König Date: Tue, 24 Sep 2019 13:29:27 +0200 Subject: drm/amdgpu: once more fix amdgpu_bo_create_kernel_at MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When CPU access is needed we should tell that to amdgpu_bo_create_reserved() or otherwise the access is denied later on. Signed-off-by: Christian König Reviewed-by: Emily Deng --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c') diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index db49737ab768..9c8e149c8491 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -392,7 +392,7 @@ int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev, size = ALIGN(size, PAGE_SIZE); r = amdgpu_bo_create_reserved(adev, size, PAGE_SIZE, domain, bo_ptr, - NULL, NULL); + NULL, cpu_addr); if (r) return r; @@ -400,12 +400,15 @@ int amdgpu_bo_create_kernel_at(struct amdgpu_device *adev, * Remove the original mem node and create a new one at the request * position. */ + if (cpu_addr) + amdgpu_bo_kunmap(*bo_ptr); + + ttm_bo_mem_put(&(*bo_ptr)->tbo, &(*bo_ptr)->tbo.mem); + for (i = 0; i < (*bo_ptr)->placement.num_placement; ++i) { (*bo_ptr)->placements[i].fpfn = offset >> PAGE_SHIFT; (*bo_ptr)->placements[i].lpfn = (offset + size) >> PAGE_SHIFT; } - - ttm_bo_mem_put(&(*bo_ptr)->tbo, &(*bo_ptr)->tbo.mem); r = ttm_bo_mem_space(&(*bo_ptr)->tbo, &(*bo_ptr)->placement, &(*bo_ptr)->tbo.mem, &ctx); if (r) -- cgit v1.2.3