On Sat, May 25, 2024 at 1:47 AM Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> 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@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202405250446.XeaWe66u-lkp@xxxxxxxxx/ > Cc: Lijo Lazar <lijo.lazar@xxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Cc: Christian König <christian.koenig@xxxxxxx> > Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam@xxxxxxx> Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > 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 >