[AMD Public Use]

Maybe commit body needs to be improved a bit like "Make sure to unlock the 
mutex for error case"

With above addressed, the patch is:
Reviewed-by: Guchun Chen <guchun.c...@amd.com>

Regards,
Guchun

-----Original Message-----
From: Dennis Li <dennis...@amd.com> 
Sent: Wednesday, August 5, 2020 4:42 PM
To: amd-gfx@lists.freedesktop.org; Deucher, Alexander 
<alexander.deuc...@amd.com>; Zhou1, Tao <tao.zh...@amd.com>; Zhang, Hawking 
<hawking.zh...@amd.com>; Chen, Guchun <guchun.c...@amd.com>
Cc: Li, Dennis <dennis...@amd.com>
Subject: [PATCH] drm/amdgpu: unlock mutex on error

Make sure unlock the mutex when error happen

Signed-off-by: Dennis Li <dennis...@amd.com>
Change-Id: I6c36a193df5fe70516282d8136b4eadf32d20915

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index a0ea663ecdbc..5e5369abc6fa 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -632,13 +632,14 @@ int amdgpu_amdkfd_submit_ib(struct kgd_dev *kgd, enum 
kgd_engine_type engine,
        }
 
        ret = amdgpu_ib_schedule(ring, 1, ib, job, &f);
+
+       up_read(&adev->reset_sem);
+
        if (ret) {
                DRM_ERROR("amdgpu: failed to schedule IB.\n");
                goto err_ib_sched;
        }
 
-       up_read(&adev->reset_sem);
-
        ret = dma_fence_wait(f, false);
 
 err_ib_sched:
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index 4e017f379eb6..67a756f4337b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -545,7 +545,7 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev)
                        }
                        ret = amdgpu_xgmi_update_topology(hive, tmp_adev);
                        if (ret)
-                               goto exit;
+                               goto exit_unlock;
                }
 
                /* get latest topology info for each device from psp */ @@ 
-558,7 +558,7 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev)
                                        tmp_adev->gmc.xgmi.node_id,
                                        tmp_adev->gmc.xgmi.hive_id, ret);
                                /* To do : continue with some node failed or 
disable the whole hive */
-                               goto exit;
+                               goto exit_unlock;
                        }
                }
        }
@@ -566,7 +566,7 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev)
        if (!ret)
                ret = amdgpu_xgmi_sysfs_add_dev_info(adev, hive);
 
-
+exit_unlock:
        mutex_unlock(&hive->hive_lock);
 exit:
        if (!ret)
--
2.17.1
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to