]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: add list empty check to avoid null pointer issue
authorYang Wang <kevinyang.wang@amd.com>
Wed, 21 Aug 2024 06:42:41 +0000 (14:42 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 23 Aug 2024 14:53:45 +0000 (10:53 -0400)
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>
drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c

index 929095a2e08863da6ce72fa5de6f1197115d61f0..57bda66e85ef77305ae9a374e90eb9c6eccc313e 100644 (file)
@@ -80,6 +80,9 @@ static void aca_banks_release(struct aca_banks *banks)
 {
        struct aca_bank_node *node, *tmp;
 
+       if (list_empty(&banks->list))
+               return;
+
        list_for_each_entry_safe(node, tmp, &banks->list, node) {
                list_del(&node->node);
                kvfree(node);
@@ -562,9 +565,13 @@ static void aca_error_fini(struct aca_error *aerr)
        struct aca_bank_error *bank_error, *tmp;
 
        mutex_lock(&aerr->lock);
+       if (list_empty(&aerr->list))
+               goto out_unlock;
+
        list_for_each_entry_safe(bank_error, tmp, &aerr->list, node)
                aca_bank_error_remove(aerr, bank_error);
 
+out_unlock:
        mutex_destroy(&aerr->lock);
 }
 
@@ -680,6 +687,9 @@ static void aca_manager_fini(struct aca_handle_manager *mgr)
 {
        struct aca_handle *handle, *tmp;
 
+       if (list_empty(&mgr->list))
+               return;
+
        list_for_each_entry_safe(handle, tmp, &mgr->list, node)
                amdgpu_aca_remove_handle(handle);
 }