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

Zhou1, Tao Tao.Zhou1 at amd.com
Wed Aug 21 07:29:00 UTC 2024


[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: Tao Zhou <tao.zhou1 at amd.com>

> -----Original Message-----
> From: Wang, Yang(Kevin) <KevinYang.Wang at amd.com>
> Sent: Wednesday, August 21, 2024 2:57 PM
> To: amd-gfx at lists.freedesktop.org
> Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Zhou1, Tao
> <Tao.Zhou1 at amd.com>
> Subject: [PATCH] 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 at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
> index 929095a2e088..57bda66e85ef 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
> @@ -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);
>  }
> --
> 2.34.1



More information about the amd-gfx mailing list