aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1602-drm-amdkfd-Fix-a-bug-that-stored-VM-fault-info-may-b.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1602-drm-amdkfd-Fix-a-bug-that-stored-VM-fault-info-may-b.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1602-drm-amdkfd-Fix-a-bug-that-stored-VM-fault-info-may-b.patch123
1 files changed, 0 insertions, 123 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1602-drm-amdkfd-Fix-a-bug-that-stored-VM-fault-info-may-b.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1602-drm-amdkfd-Fix-a-bug-that-stored-VM-fault-info-may-b.patch
deleted file mode 100644
index 72b57c0e..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1602-drm-amdkfd-Fix-a-bug-that-stored-VM-fault-info-may-b.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From ae35de33f3f1edaf9264cd1fab006a976c72df82 Mon Sep 17 00:00:00 2001
-From: Yong Zhao <yong.zhao@amd.com>
-Date: Fri, 13 Jan 2017 17:31:56 -0500
-Subject: [PATCH 1602/4131] drm/amdkfd: Fix a bug that stored VM fault info may
- be wrong
-
-We should only store the VM fault info when it is from KFD.
-
-Change-Id: Ie1a84c2455d279a81a039172b8bdb8d565825b48
-Signed-off-by: Yong Zhao <yong.zhao@amd.com>
-
- Conflicts:
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 15 ++++++++++++++-
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 3 +++
- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 5 ++++-
- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 7 +++++--
- 4 files changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-index fff1b85..a30b616 100755
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-@@ -36,6 +36,8 @@ const struct kfd2kgd_calls *kfd2kgd;
- const struct kgd2kfd_calls *kgd2kfd;
- bool (*kgd2kfd_init_p)(unsigned, const struct kgd2kfd_calls**);
-
-+unsigned int global_compute_vmid_bitmap = 0xFF00;
-+
- int amdgpu_amdkfd_init(void)
- {
- int ret;
-@@ -108,7 +110,7 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
- int last_valid_bit;
- if (adev->kfd) {
- struct kgd2kfd_shared_resources gpu_resources = {
-- .compute_vmid_bitmap = 0xFF00,
-+ .compute_vmid_bitmap = global_compute_vmid_bitmap,
- .num_pipe_per_mec = adev->gfx.mec.num_pipe_per_mec,
- .num_queue_per_pipe = adev->gfx.mec.num_queue_per_pipe,
- .gpuvm_size = (uint64_t)amdgpu_vm_size << 30
-@@ -629,3 +631,14 @@ bool read_user_wptr(struct mm_struct *mm, uint32_t __user *wptr,
-
- return wptr_valid;
- }
-+
-+bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev,
-+ u32 vmid)
-+{
-+ if (adev->kfd) {
-+ if ((1 << vmid) & global_compute_vmid_bitmap)
-+ return true;
-+ }
-+
-+ return false;
-+}
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-index bbed772..0dff746 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-@@ -144,6 +144,9 @@ int amdgpu_amdkfd_copy_mem_to_mem(struct kgd_dev *kgd, struct kgd_mem *src_mem,
- uint64_t dest_offset, uint64_t size, struct fence **f,
- uint64_t *actual_size);
-
-+bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev,
-+ u32 vmid);
-+
- /* Shared API */
- int map_bo(struct amdgpu_device *rdev, uint64_t va, void *vm,
- struct amdgpu_bo *bo, struct amdgpu_bo_va **bo_va);
-diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
-index 91f9ea4..9595023 100644
---- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
-+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
-@@ -746,6 +746,8 @@ static void gmc_v7_0_gart_fini(struct amdgpu_device *adev)
- * @adev: amdgpu_device pointer
- * @status: VM_CONTEXT1_PROTECTION_FAULT_STATUS register value
- * @addr: VM_CONTEXT1_PROTECTION_FAULT_ADDR register value
-+ * @mc_client: VM_CONTEXT1_PROTECTION_FAULT_MCCLIENT register value
-+ * @src_id: interrupt source id
- *
- * Print human readable fault information (CIK).
- */
-@@ -769,7 +771,8 @@ static void gmc_v7_0_vm_decode_fault(struct amdgpu_device *adev,
- MEMORY_CLIENT_RW) ?
- "write" : "read", block, mc_client, mc_id);
-
-- if (!atomic_read(&adev->mc.vm_fault_info_updated)) {
-+ if (amdgpu_amdkfd_is_kfd_vmid(adev, vmid)
-+ && !atomic_read(&adev->mc.vm_fault_info_updated)) {
- info->vmid = vmid;
- info->mc_id = mc_id;
- info->page_addr = addr;
-diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
-index 4e5003c..cb3fe87 100644
---- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
-+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
-@@ -966,8 +966,10 @@ static void gmc_v8_0_gart_fini(struct amdgpu_device *adev)
- * @adev: amdgpu_device pointer
- * @status: VM_CONTEXT1_PROTECTION_FAULT_STATUS register value
- * @addr: VM_CONTEXT1_PROTECTION_FAULT_ADDR register value
-+ * @mc_client: VM_CONTEXT1_PROTECTION_FAULT_MCCLIENT register value
-+ * @src_id: interrupt source id
- *
-- * Print human readable fault information (CIK).
-+ * Print human readable fault information (VI).
- */
- static void gmc_v8_0_vm_decode_fault(struct amdgpu_device *adev,
- u32 status, u32 addr, u32 mc_client)
-@@ -989,7 +991,8 @@ static void gmc_v8_0_vm_decode_fault(struct amdgpu_device *adev,
- MEMORY_CLIENT_RW) ?
- "write" : "read", block, mc_client, mc_id);
-
-- if (!atomic_read(&adev->mc.vm_fault_info_updated)) {
-+ if (amdgpu_amdkfd_is_kfd_vmid(adev, vmid)
-+ && !atomic_read(&adev->mc.vm_fault_info_updated)) {
- info->vmid = vmid;
- info->mc_id = mc_id;
- info->page_addr = addr;
---
-2.7.4
-