On 10/13/26 03:33, Jesse Zhang wrote:
> amdgpu_gem_metadata_ioctl() handles AMDGPU_GEM_METADATA_OP_GET_METADATA
> and AMDGPU_GEM_METADATA_OP_SET_METADATA and returns r otherwise, which
> is 0 from the successful amdgpu_bo_reserve(). Any other op therefore
> succeeds without doing anything.
> 
> Convert the if/else chain into a switch and return -EINVAL for unknown
> ops.
> 
> v2: use a switch statement instead of if/else if/else (Christian)
> 
> Fixes: d38ceaf99ed0 ("drm/amdgpu: add core driver (v4)")
> Signed-off-by: Jesse Zhang <[email protected]>

Reviewed-by: Christian König <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index 0552b17d9aa8..fb60a99f43c1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -764,22 +764,28 @@ int amdgpu_gem_metadata_ioctl(struct drm_device *dev, 
> void *data,
>               goto unreserve;
>       }
>  
> -     if (args->op == AMDGPU_GEM_METADATA_OP_GET_METADATA) {
> +     switch (args->op) {
> +     case AMDGPU_GEM_METADATA_OP_GET_METADATA:
>               amdgpu_bo_get_tiling_flags(robj, &args->data.tiling_info);
>               r = amdgpu_bo_get_metadata(robj, args->data.data,
>                                          sizeof(args->data.data),
>                                          &args->data.data_size_bytes,
>                                          &args->data.flags);
> -     } else if (args->op == AMDGPU_GEM_METADATA_OP_SET_METADATA) {
> +             break;
> +     case AMDGPU_GEM_METADATA_OP_SET_METADATA:
>               if (args->data.data_size_bytes > sizeof(args->data.data)) {
>                       r = -EINVAL;
> -                     goto unreserve;
> +                     break;
>               }
>               r = amdgpu_bo_set_tiling_flags(robj, args->data.tiling_info);
>               if (!r)
>                       r = amdgpu_bo_set_metadata(robj, args->data.data,
>                                                  args->data.data_size_bytes,
>                                                  args->data.flags);
> +             break;
> +     default:
> +             r = -EINVAL;
> +             break;
>       }
>  
>  unreserve:

Reply via email to