diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0836-Hybrid-kfd-adaption-Adapt-to-new-amdgpu_bo-structure.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0836-Hybrid-kfd-adaption-Adapt-to-new-amdgpu_bo-structure.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0836-Hybrid-kfd-adaption-Adapt-to-new-amdgpu_bo-structure.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0836-Hybrid-kfd-adaption-Adapt-to-new-amdgpu_bo-structure.patch new file mode 100644 index 00000000..f2cda6a5 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0836-Hybrid-kfd-adaption-Adapt-to-new-amdgpu_bo-structure.patch @@ -0,0 +1,45 @@ +From 36f4c60f10bc1cebede6176736aee7a66776f441 Mon Sep 17 00:00:00 2001 +From: Yong Zhao <Yong.Zhao@amd.com> +Date: Wed, 22 Feb 2017 23:17:32 -0500 +Subject: [PATCH 0836/4131] Hybrid-kfd-adaption: Adapt to new amdgpu_bo + structure introduced for KFD + +Change-Id: I6f7b6b63972f5a8aa1b88d9aa78f26c5a34c1e08 +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +index 93075bf..8f72e6b 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +@@ -308,6 +308,7 @@ int amdgpu_gem_find_bo_by_cpu_mapping_ioctl(struct drm_device *dev, void *data, + { + struct drm_amdgpu_gem_find_bo *args = data; + struct drm_gem_object *gobj; ++ struct amdgpu_gem_object *amdgpu_gobj; + struct amdgpu_bo *bo; + struct ttm_buffer_object *tbo; + struct vm_area_struct *vma; +@@ -328,7 +329,17 @@ int amdgpu_gem_find_bo_by_cpu_mapping_ioctl(struct drm_device *dev, void *data, + tbo = vma->vm_private_data; + bo = container_of(tbo, struct amdgpu_bo, tbo); + amdgpu_bo_ref(bo); +- gobj = &bo->gem_base; ++ ++ ww_mutex_lock(&bo->tbo.resv->lock, NULL); ++ list_for_each_entry(amdgpu_gobj, &bo->gem_objects, list) { ++ if (amdgpu_gobj->base.dev != filp->minor->dev) ++ continue; ++ ++ ww_mutex_unlock(&bo->tbo.resv->lock); ++ break; ++ } ++ gobj = &amdgpu_gobj->base; ++ + handle = amdgpu_gem_get_handle_from_object(filp, gobj); + if (handle == 0) { + r = drm_gem_handle_create(filp, gobj, &handle); +-- +2.7.4 + |