diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch new file mode 100644 index 00000000..0ea88179 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3148-drm-amdgpu-print-the-PASID-with-VM-faults-on-GMC-v7.patch @@ -0,0 +1,61 @@ +From d7a9cc8545ac48f5b8900a5984d99636b4da461d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Tue, 9 Jan 2018 19:49:21 +0100 +Subject: [PATCH 3148/4131] drm/amdgpu: print the PASID with VM faults on GMC + v7 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Print that extra information on GMC v7. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Chunming Zhou <david1.zhou@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +index 1d5d1c5..754dd0c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +@@ -751,21 +751,21 @@ static void gmc_v7_0_gart_fini(struct amdgpu_device *adev) + * + * Print human readable fault information (CIK). + */ +-static void gmc_v7_0_vm_decode_fault(struct amdgpu_device *adev, +- u32 status, u32 addr, u32 mc_client) ++static void gmc_v7_0_vm_decode_fault(struct amdgpu_device *adev, u32 status, ++ u32 addr, u32 mc_client, unsigned pasid) + { +- u32 mc_id; + u32 vmid = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, VMID); + u32 protections = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, + PROTECTIONS); + char block[5] = { mc_client >> 24, (mc_client >> 16) & 0xff, + (mc_client >> 8) & 0xff, mc_client & 0xff, 0 }; ++ u32 mc_id; + + mc_id = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, + MEMORY_CLIENT_ID); + +- dev_err(adev->dev, "VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", +- protections, vmid, addr, ++ dev_err(adev->dev, "VM fault (0x%02x, vmid %d, pasid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", ++ protections, vmid, pasid, addr, + REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, + MEMORY_CLIENT_RW) ? + "write" : "read", block, mc_client, mc_id); +@@ -1266,7 +1266,8 @@ static int gmc_v7_0_process_interrupt(struct amdgpu_device *adev, + addr); + dev_err(adev->dev, " VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x%08X\n", + status); +- gmc_v7_0_vm_decode_fault(adev, status, addr, mc_client); ++ gmc_v7_0_vm_decode_fault(adev, status, addr, mc_client, ++ entry->pasid); + } + + vmid = REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, +-- +2.7.4 + |