[PATCH v8 1/6] drm: amdgpu: Allow NULL pointers at amdgpu_vm_put_task_info()

André Almeida posted 6 patches 3 months, 3 weeks ago
There is a newer version of this series
[PATCH v8 1/6] drm: amdgpu: Allow NULL pointers at amdgpu_vm_put_task_info()
Posted by André Almeida 3 months, 3 weeks ago
Allow NULL pointers at amdgpu_vm_put_task_info() as it common practice
for "put" or "free" functions. This avoid an extra check for NULL for
callers.

Signed-off-by: André Almeida <andrealmeid@igalia.com>
---
v8: New patch
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 3911c78f8282..dadf5633476c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -2447,6 +2447,9 @@ amdgpu_vm_get_vm_from_pasid(struct amdgpu_device *adev, u32 pasid)
  */
 void amdgpu_vm_put_task_info(struct amdgpu_task_info *task_info)
 {
+	if (unlikely(ZERO_OR_NULL_PTR(task_info)))
+		return;
+
 	kref_put(&task_info->refcount, amdgpu_vm_destroy_task_info);
 }
 
-- 
2.49.0

Re: [PATCH v8 1/6] drm: amdgpu: Allow NULL pointers at amdgpu_vm_put_task_info()
Posted by Christian König 3 months, 3 weeks ago

On 6/16/25 20:14, André Almeida wrote:
> Allow NULL pointers at amdgpu_vm_put_task_info() as it common practice
> for "put" or "free" functions. This avoid an extra check for NULL for
> callers.
> 
> Signed-off-by: André Almeida <andrealmeid@igalia.com>
> ---
> v8: New patch
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 3911c78f8282..dadf5633476c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2447,6 +2447,9 @@ amdgpu_vm_get_vm_from_pasid(struct amdgpu_device *adev, u32 pasid)
>   */
>  void amdgpu_vm_put_task_info(struct amdgpu_task_info *task_info)
>  {
> +	if (unlikely(ZERO_OR_NULL_PTR(task_info)))

Don't use ZERO_OR_NULL_PTR here, that is slab internal and not valid in this use case.

The usual code fragment used looks something like this

if (ptr)
	kref_put(&ptr->refcount, func);

See dma_fence_put() for an example.

Regards,
Christian.

> +		return;
> +
>  	kref_put(&task_info->refcount, amdgpu_vm_destroy_task_info);
>  }
>