diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1772-drm-amdgpu-fix-kfd-event-page-unaccessible.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1772-drm-amdgpu-fix-kfd-event-page-unaccessible.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1772-drm-amdgpu-fix-kfd-event-page-unaccessible.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1772-drm-amdgpu-fix-kfd-event-page-unaccessible.patch new file mode 100644 index 00000000..eb640e4c --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1772-drm-amdgpu-fix-kfd-event-page-unaccessible.patch @@ -0,0 +1,52 @@ +From dc6ce4afc6e4f0d8fa2dbb83af116a45fd1a8f77 Mon Sep 17 00:00:00 2001 +From: Eric Huang <JinHuiEric.Huang@amd.com> +Date: Tue, 22 Aug 2017 12:12:12 -0400 +Subject: [PATCH 1772/4131] drm/amdgpu: fix kfd event page unaccessible + +remove pinned and kmapped BO from validation list to +fix event page kernal address invalid after memory +eviction and system memory swap. + +Change-Id: Ifce1b126a2bdc387436284fe5e58184d02b4d122 +Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +index b352e8e..5c5162c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +@@ -1657,17 +1657,25 @@ int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct kgd_dev *kgd, + struct kgd_mem *mem, void **kptr) + { + int ret; +- struct amdgpu_bo *bo; ++ struct amdgpu_bo *bo = mem->bo; + +- mutex_lock(&mem->lock); ++ if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm)) { ++ pr_err("userptr can't be mapped to kernel\n"); ++ return -EINVAL; ++ } + +- bo = mem->bo; ++ /* delete kgd_mem from kfd_bo_list to avoid re-validating ++ * this BO in BO's restoring after eviction. ++ */ ++ mutex_lock(&mem->process_info->lock); ++ ++ list_del_init(&mem->validate_list.head); + + ret = __map_bo_to_kernel(bo, AMDGPU_GEM_DOMAIN_GTT, kptr); + if (!ret) + mem->kptr = *kptr; + +- mutex_unlock(&mem->lock); ++ mutex_unlock(&mem->process_info->lock); + + return ret; + } +-- +2.7.4 + |