summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMukul Joshi <mukul.joshi@amd.com>2026-09-01 15:00:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-09-10 12:08:40 -0400
commite6b969fe8d282fc2717bed06afe4cc58945ef102 (patch)
tree14a58d62e3abbe760487959b4dc6c4aee57c0f66
parente3b207b98d81b4493af26a93923a80597fa7022a (diff)
downloadlinux-next-e6b969fe8d282fc2717bed06afe4cc58945ef102.tar.gz
linux-next-e6b969fe8d282fc2717bed06afe4cc58945ef102.zip
drm/amdgpu: Reset UALink connection on failed TLB-shootdown send
If sending TLB shootdown to a remote GPU fails, reset the connection and mark the connection as NOT_READY. Signed-off-by: Mukul Joshi <mukul.joshi@amd.com> Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
index b09fa56c6f98..ab564202f550 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c
@@ -2680,10 +2680,19 @@ static void amdgpu_ualink_send_tlb_shootdown(struct amdgpu_device *adev,
r = amdgpu_ualink_remote_shootdown(adev, remote_acc_id,
npa_addr, size,
AMDGPU_UALINK_HEAVYWEIGHT_TLB_SHOOTDOWN);
- if (r)
+ if (r) {
dev_err(adev->dev,
"EXP-CLEANUP: TLB shootdown send failed to remote:%u\n",
remote_acc_id);
+
+ /* Send failed: mark the connection NOT_READY so the
+ * rest of this cleanup (and other cleanups) skip the
+ * unreachable peer via amdgpu_ualink_check_conn_ready().
+ */
+ amdgpu_ualink_handle_connection_reset(adev, remote_acc_id,
+ AMDGPU_UALINK_CONN_NOT_READY,
+ imp_entry->generation_count);
+ }
}
}