Commit 4416377a authored by Yang Wang's avatar Yang Wang Committed by Alex Deucher

drm/amdgpu: add list empty check to avoid null pointer issue

Add list empty check to avoid null pointer issues in some corner cases.
- list_for_each_entry_safe()
Signed-off-by: default avatarYang Wang <kevinyang.wang@amd.com>
Reviewed-by: default avatarTao Zhou <tao.zhou1@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 2845f512
...@@ -80,6 +80,9 @@ static void aca_banks_release(struct aca_banks *banks) ...@@ -80,6 +80,9 @@ static void aca_banks_release(struct aca_banks *banks)
{ {
struct aca_bank_node *node, *tmp; struct aca_bank_node *node, *tmp;
if (list_empty(&banks->list))
return;
list_for_each_entry_safe(node, tmp, &banks->list, node) { list_for_each_entry_safe(node, tmp, &banks->list, node) {
list_del(&node->node); list_del(&node->node);
kvfree(node); kvfree(node);
...@@ -562,9 +565,13 @@ static void aca_error_fini(struct aca_error *aerr) ...@@ -562,9 +565,13 @@ static void aca_error_fini(struct aca_error *aerr)
struct aca_bank_error *bank_error, *tmp; struct aca_bank_error *bank_error, *tmp;
mutex_lock(&aerr->lock); mutex_lock(&aerr->lock);
if (list_empty(&aerr->list))
goto out_unlock;
list_for_each_entry_safe(bank_error, tmp, &aerr->list, node) list_for_each_entry_safe(bank_error, tmp, &aerr->list, node)
aca_bank_error_remove(aerr, bank_error); aca_bank_error_remove(aerr, bank_error);
out_unlock:
mutex_destroy(&aerr->lock); mutex_destroy(&aerr->lock);
} }
...@@ -680,6 +687,9 @@ static void aca_manager_fini(struct aca_handle_manager *mgr) ...@@ -680,6 +687,9 @@ static void aca_manager_fini(struct aca_handle_manager *mgr)
{ {
struct aca_handle *handle, *tmp; struct aca_handle *handle, *tmp;
if (list_empty(&mgr->list))
return;
list_for_each_entry_safe(handle, tmp, &mgr->list, node) list_for_each_entry_safe(handle, tmp, &mgr->list, node)
amdgpu_aca_remove_handle(handle); amdgpu_aca_remove_handle(handle);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment