Queue reset is not supported when running as an SR-IOV virtual
function on gfx11 dGPUs. Guard HSA_CAP_PER_QUEUE_RESET_SUPPORTED
with !amdgpu_sriov_vf() so the capability is not reported to user
space under SR-IOV, matching the gfx9/gfx10 path.
Fixes: afc0c16db999 ("drm/amdkfd: Add queue reset support on gfx11 dGPU")
Signed-off-by: Amber Lin <[email protected]>
Reviewed-by: Jesse Zhang <[email protected]>
---
drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
index a9879cf8539e..6a90a3ece9ed 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
@@ -2020,9 +2020,10 @@ static void kfd_topology_set_capabilities(struct
kfd_topology_device *dev)
dev->node_props.debug_prop |=
HSA_DBG_WATCH_ADDR_MASK_LO_BIT_GFX10 |
HSA_DBG_WATCH_ADDR_MASK_HI_BIT;
/* gfx11 dGPU */
- if (KFD_GC_VERSION(dev->gpu) == IP_VERSION(11, 0, 0) ||
- KFD_GC_VERSION(dev->gpu) == IP_VERSION(11, 0, 2) ||
- KFD_GC_VERSION(dev->gpu) == IP_VERSION(11, 0, 3))
+ if ((KFD_GC_VERSION(dev->gpu) == IP_VERSION(11, 0, 0) ||
+ KFD_GC_VERSION(dev->gpu) == IP_VERSION(11, 0, 2) ||
+ KFD_GC_VERSION(dev->gpu) == IP_VERSION(11, 0, 3)) &&
+ !amdgpu_sriov_vf(dev->gpu->adev))
dev->node_props.capability |=
HSA_CAP_PER_QUEUE_RESET_SUPPORTED;
if (KFD_GC_VERSION(dev->gpu) >= IP_VERSION(12, 0, 0))
--
2.49.0