diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch new file mode 100644 index 00000000..f4192b7f --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch @@ -0,0 +1,53 @@ +From 3798da0ad2634e392be4ddc2b52717577dab210f Mon Sep 17 00:00:00 2001 +From: Lan Xiao <Lan.Xiao@amd.com> +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 <Lan.Xiao@amd.com> +--- + 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 + |