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

SRINIVASAN SHANMUGAM srinivasan.shanmugam at amd.com
Thu May 30 13:51:12 UTC 2024


Ping!?

On 5/25/2024 7:40 AM, Srinivasan Shanmugam 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>
> ---
>   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)


More information about the amd-gfx mailing list