[PATCH] drm/amdgpu: Fix type mismatch in amdgpu_gfx_kiq_init_ring

Alex Deucher alexdeucher at gmail.com
Thu May 30 16:35:10 UTC 2024


On Sat, May 25, 2024 at 1:47 AM Srinivasan Shanmugam
<srinivasan.shanmugam at amd.com> wrote:
>
> This commit fixes a type mismatch in the amdgpu_gfx_kiq_init_ring
> function triggered by the snprintf function expecting unsigned char
> arguments due to the '%hhu' format specifier, but receiving int and u32
> arguments.
>
> The issue occurred because the arguments xcc_id, ring->me, ring->pipe,
> and ring->queue were of type int and u32, not unsigned char. This led to
> a type mismatch when these arguments were passed to snprintf.
>
> To resolve this, the snprintf line was modified to cast these arguments
> to unsigned char. This ensures that the arguments are of the correct
> type for the '%hhu' format specifier and resolves the warning.
>
> Fixes the below:
> >> drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:333:4: warning: format
> >> specifies type 'unsigned char' but the argument has type 'int'
> >> [-Wformat]
>                     xcc_id, ring->me, ring->pipe, ring->queue);
>                     ^~~~~~
> >> drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:333:12: warning: format
> >> specifies type 'unsigned char' but the argument has type 'u32' (aka
> >> 'unsigned int') [-Wformat]
>                     xcc_id, ring->me, ring->pipe, ring->queue);
>                             ^~~~~~~~
>    drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:333:22: warning: format specifies type 'unsigned char' but the argument has type 'u32' (aka 'unsigned int') [-Wformat]
>                     xcc_id, ring->me, ring->pipe, ring->queue);
>                                       ^~~~~~~~~~
>    drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:333:34: warning: format specifies type 'unsigned char' but the argument has type 'u32' (aka 'unsigned int') [-Wformat]
>                     xcc_id, ring->me, ring->pipe, ring->queue);
>                                                   ^~~~~~~~~~~
>    4 warnings generated.
>
> Fixes: 0eb430076172 ("drm/amdgpu: Fix snprintf usage in amdgpu_gfx_kiq_init_ring")
> Reported-by: kernel test robot <lkp at intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202405250446.XeaWe66u-lkp@intel.com/
> Cc: Lijo Lazar <lijo.lazar at amd.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Christian König <christian.koenig at amd.com>
> Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> index 68505eaa92f9..19b1817b55d7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
> @@ -330,7 +330,8 @@ int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, int xcc_id)
>         ring->eop_gpu_addr = kiq->eop_gpu_addr;
>         ring->no_scheduler = true;
>         snprintf(ring->name, sizeof(ring->name), "kiq_%hhu.%hhu.%hhu.%hhu",
> -                xcc_id, ring->me, ring->pipe, ring->queue);
> +                (unsigned char)xcc_id, (unsigned char)ring->me,
> +                (unsigned char)ring->pipe, (unsigned char)ring->queue);
>         r = amdgpu_ring_init(adev, ring, 1024, irq, AMDGPU_CP_KIQ_IRQ_DRIVER0,
>                              AMDGPU_RING_PRIO_DEFAULT, NULL);
>         if (r)
> --
> 2.34.1
>


More information about the amd-gfx mailing list