mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
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: Yang Wang <kevinyang.wang@amd.com> Reviewed-by: Tao Zhou <tao.zhou1@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
2845f51223
commit
4416377ae1
@ -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)
|
|||||||
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)
|
|||||||
{
|
{
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user