From 3798da0ad2634e392be4ddc2b52717577dab210f Mon Sep 17 00:00:00 2001 From: Lan Xiao Date: Tue, 18 Oct 2016 12:16:09 -0400 Subject: [PATCH 1541/4131] drm/amdgpu: Fix kernel warning caused by unreserved BO In reserve_bo_and_cond_vms, do not exit when ctx->n_vms = 0. Instead, skip reserving the VM and only reserve BO. Change-Id: Id23e0856ba6143bee4d1064c8fed93be8bbe14bd Signed-off-by: Lan Xiao --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index 969769d..057a47b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -650,13 +650,12 @@ static int reserve_bo_and_cond_vms(struct kgd_mem *mem, ctx->n_vms++; } - if (ctx->n_vms == 0) - return 0; - - ctx->vm_pd = kzalloc(sizeof(struct amdgpu_bo_list_entry) + if (ctx->n_vms != 0) { + ctx->vm_pd = kzalloc(sizeof(struct amdgpu_bo_list_entry) * ctx->n_vms, GFP_KERNEL); - if (ctx->vm_pd == NULL) - return -ENOMEM; + if (ctx->vm_pd == NULL) + return -ENOMEM; + } ctx->kfd_bo.robj = bo; ctx->kfd_bo.priority = 0; @@ -702,9 +701,8 @@ static void unreserve_bo_and_vms(struct bo_vm_reservation_context *ctx, if (ctx->reserved) ttm_eu_backoff_reservation(&ctx->ticket, &ctx->list); - if (ctx->vm_pd) { - kfree(ctx->vm_pd); - } + kfree(ctx->vm_pd); + amdgpu_sync_free(&ctx->sync); ctx->reserved = false; ctx->vm_pd = NULL; -- 2.7.4