Re: [PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf
On Fri, 12 Jan 2024, Alex Deucher wrote: > On Wed, Jan 10, 2024 at 12:39 PM Jani Nikula wrote: >> >> This will trade the W=1 warning -Wformat-overflow to >> -Wformat-truncation. This lets us enable -Wformat-overflow subsystem >> wide. >> >> Cc: Alex Deucher >> Cc: Christian König >> Cc: Pan, Xinhui >> Cc: amd-...@lists.freedesktop.org >> Signed-off-by: Jani Nikula > > Acked-by: Alex Deucher > > Feel free to take this via whichever tree makes sense. Thanks, pushed this one patch to drm-misc-next as prep work. BR, Jani. > > Alex > >> --- >> 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 b9674c57c436..82b4b2019fca 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c >> @@ -329,7 +329,8 @@ int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, >> >> ring->eop_gpu_addr = kiq->eop_gpu_addr; >> ring->no_scheduler = true; >> - sprintf(ring->name, "kiq_%d.%d.%d.%d", xcc_id, ring->me, ring->pipe, >> ring->queue); >> + snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", >> +xcc_id, ring->me, ring->pipe, ring->queue); >> r = amdgpu_ring_init(adev, ring, 1024, irq, >> AMDGPU_CP_KIQ_IRQ_DRIVER0, >> AMDGPU_RING_PRIO_DEFAULT, NULL); >> if (r) >> -- >> 2.39.2 >> -- Jani Nikula, Intel
Re: [PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf
On Wed, Jan 10, 2024 at 12:39 PM Jani Nikula wrote: > > This will trade the W=1 warning -Wformat-overflow to > -Wformat-truncation. This lets us enable -Wformat-overflow subsystem > wide. > > Cc: Alex Deucher > Cc: Christian König > Cc: Pan, Xinhui > Cc: amd-...@lists.freedesktop.org > Signed-off-by: Jani Nikula Acked-by: Alex Deucher Feel free to take this via whichever tree makes sense. Alex > --- > 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 b9674c57c436..82b4b2019fca 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > @@ -329,7 +329,8 @@ int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, > > ring->eop_gpu_addr = kiq->eop_gpu_addr; > ring->no_scheduler = true; > - sprintf(ring->name, "kiq_%d.%d.%d.%d", xcc_id, ring->me, ring->pipe, > ring->queue); > + snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", > +xcc_id, ring->me, ring->pipe, ring->queue); > r = amdgpu_ring_init(adev, ring, 1024, irq, AMDGPU_CP_KIQ_IRQ_DRIVER0, > AMDGPU_RING_PRIO_DEFAULT, NULL); > if (r) > -- > 2.39.2 >
Re: [PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf
On Fri, 12 Jan 2024, kernel test robot wrote: > Hi Jani, > > kernel test robot noticed the following build warnings: > > [auto build test WARNING on drm-misc/drm-misc-next] > [also build test WARNING on drm-intel/for-linux-next > drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.7 > next-20240111] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: > https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-nouveau-acr-ga102-remove-unused-but-set-variable/20240111-014206 > base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next > patch link: > https://lore.kernel.org/r/fea7a52924f98b1ac24f4a7e6ba21d7754422430.1704908087.git.jani.nikula%40intel.com > patch subject: [PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf > config: sparc64-allmodconfig > (https://download.01.org/0day-ci/archive/20240112/202401121126.i9vgrvmb-...@intel.com/config) > compiler: sparc64-linux-gcc (GCC) 13.2.0 > reproduce (this is a W=1 build): > (https://download.01.org/0day-ci/archive/20240112/202401121126.i9vgrvmb-...@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version > of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot > | Closes: > https://lore.kernel.org/oe-kbuild-all/202401121126.i9vgrvmb-...@intel.com/ > > All warnings (new ones prefixed by >>): > >drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c: In function > 'amdgpu_gfx_kiq_init_ring': >>> drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:332:61: warning: '%d' directive >>> output may be truncated writing between 1 and 10 bytes into a region of >>> size between 0 and 8 [-Wformat-truncation=] > 332 | snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", > | ^~ >drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:332:50: note: directive argument > in the range [0, 2147483647] > 332 | snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", > | ^ >drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:332:9: note: 'snprintf' output > between 12 and 41 bytes into a destination of size 16 > 332 | snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", > | ^~~ > 333 | xcc_id, ring->me, ring->pipe, ring->queue); > | ~~ As the commit message says, This will trade the W=1 warning -Wformat-overflow to -Wformat-truncation. This lets us enable -Wformat-overflow subsystem wide. BR, Jani. > > > vim +332 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c > >306 >307int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, >308 struct amdgpu_ring *ring, >309 struct amdgpu_irq_src *irq, int > xcc_id) >310{ >311struct amdgpu_kiq *kiq = >gfx.kiq[xcc_id]; >312int r = 0; >313 >314spin_lock_init(>ring_lock); >315 >316ring->adev = NULL; >317ring->ring_obj = NULL; >318ring->use_doorbell = true; >319ring->xcc_id = xcc_id; >320ring->vm_hub = AMDGPU_GFXHUB(xcc_id); >321ring->doorbell_index = >322(adev->doorbell_index.kiq + >323 xcc_id * > adev->doorbell_index.xcc_doorbell_range) >324<< 1; >325 >326r = amdgpu_gfx_kiq_acquire(adev, ring, xcc_id); >327if (r) >328return r; >329 >330ring->eop_gpu_addr = kiq->eop_gpu_addr; >331ring->no_scheduler = true; > > 332snprintf(ring->name, sizeof(ring->name), > "kiq_%d.%d.%d.%d", >333 xcc_id, ring->me, ring->pipe, ring->queue); >334r = amdgpu_ring_init(adev, ring, 1024, irq, > AMDGPU_CP_KIQ_IRQ_DRIVER0, >335 AMDGPU_RING_PRIO_DEFAULT, NULL); >336if (r) >337dev_warn(adev->dev, "(%d) failed to init kiq > ring\n", r); >338 >339return r; >340} >341 -- Jani Nikula, Intel
Re: [PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf
Hi Jani, kernel test robot noticed the following build warnings: [auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on drm-intel/for-linux-next drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.7 next-20240111] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-nouveau-acr-ga102-remove-unused-but-set-variable/20240111-014206 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/fea7a52924f98b1ac24f4a7e6ba21d7754422430.1704908087.git.jani.nikula%40intel.com patch subject: [PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20240112/202401121126.i9vgrvmb-...@intel.com/config) compiler: sparc64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240112/202401121126.i9vgrvmb-...@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202401121126.i9vgrvmb-...@intel.com/ All warnings (new ones prefixed by >>): drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c: In function 'amdgpu_gfx_kiq_init_ring': >> drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:332:61: warning: '%d' directive >> output may be truncated writing between 1 and 10 bytes into a region of size >> between 0 and 8 [-Wformat-truncation=] 332 | snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", | ^~ drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:332:50: note: directive argument in the range [0, 2147483647] 332 | snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", | ^ drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c:332:9: note: 'snprintf' output between 12 and 41 bytes into a destination of size 16 332 | snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", | ^~~ 333 | xcc_id, ring->me, ring->pipe, ring->queue); | ~~ vim +332 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c 306 307 int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, 308 struct amdgpu_ring *ring, 309 struct amdgpu_irq_src *irq, int xcc_id) 310 { 311 struct amdgpu_kiq *kiq = >gfx.kiq[xcc_id]; 312 int r = 0; 313 314 spin_lock_init(>ring_lock); 315 316 ring->adev = NULL; 317 ring->ring_obj = NULL; 318 ring->use_doorbell = true; 319 ring->xcc_id = xcc_id; 320 ring->vm_hub = AMDGPU_GFXHUB(xcc_id); 321 ring->doorbell_index = 322 (adev->doorbell_index.kiq + 323 xcc_id * adev->doorbell_index.xcc_doorbell_range) 324 << 1; 325 326 r = amdgpu_gfx_kiq_acquire(adev, ring, xcc_id); 327 if (r) 328 return r; 329 330 ring->eop_gpu_addr = kiq->eop_gpu_addr; 331 ring->no_scheduler = true; > 332 snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", 333 xcc_id, ring->me, ring->pipe, ring->queue); 334 r = amdgpu_ring_init(adev, ring, 1024, irq, AMDGPU_CP_KIQ_IRQ_DRIVER0, 335 AMDGPU_RING_PRIO_DEFAULT, NULL); 336 if (r) 337 dev_warn(adev->dev, "(%d) failed to init kiq ring\n", r); 338 339 return r; 340 } 341 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
[PATCH 3/6] drm/amdgpu: prefer snprintf over sprintf
This will trade the W=1 warning -Wformat-overflow to -Wformat-truncation. This lets us enable -Wformat-overflow subsystem wide. Cc: Alex Deucher Cc: Christian König Cc: Pan, Xinhui Cc: amd-...@lists.freedesktop.org Signed-off-by: Jani Nikula --- 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 b9674c57c436..82b4b2019fca 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c @@ -329,7 +329,8 @@ int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, ring->eop_gpu_addr = kiq->eop_gpu_addr; ring->no_scheduler = true; - sprintf(ring->name, "kiq_%d.%d.%d.%d", xcc_id, ring->me, ring->pipe, ring->queue); + snprintf(ring->name, sizeof(ring->name), "kiq_%d.%d.%d.%d", +xcc_id, ring->me, ring->pipe, ring->queue); r = amdgpu_ring_init(adev, ring, 1024, irq, AMDGPU_CP_KIQ_IRQ_DRIVER0, AMDGPU_RING_PRIO_DEFAULT, NULL); if (r) -- 2.39.2