aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCandice Li <[email protected]>2021-11-16 14:13:11 +0800
committerAlex Deucher <[email protected]>2021-11-22 14:45:02 -0500
commitd9a69fe512c5f032556764041760e8d5098fac26 (patch)
treec27a8d114f6d2b9e57ac9978cf906e1482851a1c
parent3ebd8bf02380ddc32556ee87077db3917ccff40c (diff)
drm/amdgpu: Add recovery_lock to save bad pages function
Fix race condition failure during UMC UE injection. Signed-off-by: Candice Li <[email protected]> Reviewed-by: Tao Zhou <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 08133de21fdd..53b957a5b9a6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -1935,9 +1935,11 @@ int amdgpu_ras_save_bad_pages(struct amdgpu_device *adev)
if (!con || !con->eh_data)
return 0;
+ mutex_lock(&con->recovery_lock);
control = &con->eeprom_control;
data = con->eh_data;
save_count = data->count - control->ras_num_recs;
+ mutex_unlock(&con->recovery_lock);
/* only new entries are saved */
if (save_count > 0) {
if (amdgpu_ras_eeprom_append(control,