Am 12.06.2017 um 22:31 schrieb Alex Xie:
This patch is to move a loop of unref BOs and
several memory free function calls out of
critical sections.
Signed-off-by: Alex Xie <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
index a664987..02c138f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
@@ -75,9 +75,12 @@ static void amdgpu_bo_list_destroy(struct amdgpu_fpriv
*fpriv, int id)
/* Another user may have a reference to this list still */
mutex_lock(&list->lock);
mutex_unlock(&list->lock);
+ mutex_unlock(&fpriv->bo_list_lock);
amdgpu_bo_list_free(list);
}
- mutex_unlock(&fpriv->bo_list_lock);
+ else {
+ mutex_unlock(&fpriv->bo_list_lock);
+ }
You could move the unlock of bo_list_lock even before the if.
But since you pointed it out there is quite a bug in this function:
/* Another user may have a reference to this list still */
mutex_lock(&list->lock);
mutex_unlock(&list->lock);
Not sure if that is still up to date, but that use case used to be
illegal with mutexes.
Christian.
}
static int amdgpu_bo_list_set(struct amdgpu_device *adev,
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx