aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1541-drm-amdgpu-Fix-kernel-warning-caused-by-unreserved-B.patch b/meta-amd-bsp/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/meta-amd-bsp/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
+