diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0958-drm-amdgpu-KFD-Fix-rw_semaphore-usage.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0958-drm-amdgpu-KFD-Fix-rw_semaphore-usage.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0958-drm-amdgpu-KFD-Fix-rw_semaphore-usage.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0958-drm-amdgpu-KFD-Fix-rw_semaphore-usage.patch new file mode 100644 index 00000000..700685ca --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/0958-drm-amdgpu-KFD-Fix-rw_semaphore-usage.patch @@ -0,0 +1,57 @@ +From ddab49e2d63d5dadc60449724fd7fd6cc9af6002 Mon Sep 17 00:00:00 2001 +From: "Le.Ma" <Le.Ma@amd.com> +Date: Fri, 22 Sep 2017 10:56:57 +0800 +Subject: [PATCH 0958/4131] drm/amdgpu: [KFD] Fix rw_semaphore usage + +Avoid accessing current pointer in amdgpu_ttm_tt_get_user_pages(), +which will cause NULL pointer oops. And remove uneeded rw_semaphore. + +This fix accords with kfd branch. + +Change-Id: I0a602b30a20eb444968d6e846f3adca6cfff841a +Signed-off-by: Le.Ma <Le.Ma@amd.com> +Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +index dd9e59a..fc82765 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +@@ -680,7 +680,7 @@ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages) + if (!(gtt->userflags & AMDGPU_GEM_USERPTR_READONLY)) + flags |= FOLL_WRITE; + +- down_read(¤t->mm->mmap_sem); ++ down_read(&mm->mmap_sem); + + if (gtt->userflags & AMDGPU_GEM_USERPTR_ANONONLY) { + /* check that we only use anonymous memory +@@ -690,7 +690,7 @@ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages) + + vma = find_vma(mm, gtt->userptr); + if (!vma || vma->vm_file || vma->vm_end < end) { +- up_read(¤t->mm->mmap_sem); ++ up_read(&mm->mmap_sem); + return -EPERM; + } + } +@@ -719,12 +719,12 @@ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages) + + } while (pinned < ttm->num_pages); + +- up_read(¤t->mm->mmap_sem); ++ up_read(&mm->mmap_sem); + return 0; + + release_pages: + release_pages(pages, pinned, 0); +- up_read(¤t->mm->mmap_sem); ++ up_read(&mm->mmap_sem); + return r; + } + +-- +2.7.4 + |