aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2017-09-28 09:47:32 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-28 16:03:20 -0400
commite23b74aab5dc48d3e508a2bc171ccd152fb03803 (patch)
treeb715c0cff8755ec4f0b51bc696080e982e881bb7 /drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
parent6f87a895709eecc1542fe947e349364ad061ac00 (diff)
drm/amdgpu: fix vf error handling
The error handling for virtual functions assumed a single vf per VM and didn't properly account for bare metal. Make the error arrays per device and add locking. Reviewed-by: Gavin Wan <gavin.wan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
index afcfb8bcfb65..e5fd0ff6b29d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
@@ -36,6 +36,18 @@ struct amdgpu_mm_table {
36 uint64_t gpu_addr; 36 uint64_t gpu_addr;
37}; 37};
38 38
39#define AMDGPU_VF_ERROR_ENTRY_SIZE 16
40
41/* struct error_entry - amdgpu VF error information. */
42struct amdgpu_vf_error_buffer {
43 struct mutex lock;
44 int read_count;
45 int write_count;
46 uint16_t code[AMDGPU_VF_ERROR_ENTRY_SIZE];
47 uint16_t flags[AMDGPU_VF_ERROR_ENTRY_SIZE];
48 uint64_t data[AMDGPU_VF_ERROR_ENTRY_SIZE];
49};
50
39/** 51/**
40 * struct amdgpu_virt_ops - amdgpu device virt operations 52 * struct amdgpu_virt_ops - amdgpu device virt operations
41 */ 53 */
@@ -59,6 +71,7 @@ struct amdgpu_virt {
59 struct work_struct flr_work; 71 struct work_struct flr_work;
60 struct amdgpu_mm_table mm_table; 72 struct amdgpu_mm_table mm_table;
61 const struct amdgpu_virt_ops *ops; 73 const struct amdgpu_virt_ops *ops;
74 struct amdgpu_vf_error_buffer vf_errors;
62}; 75};
63 76
64#define AMDGPU_CSA_SIZE (8 * 1024) 77#define AMDGPU_CSA_SIZE (8 * 1024)