drivers/pci/controller/dwc/pcie-designware.c:898:50: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 3

From: kernel test robot
Date: Wed Oct 18 2023 - 17:46:33 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dd72f9c7e512da377074d47d990564959b772643
commit: 939fbcd568fd294034c96edc92ff5b9de1a5fce8 PCI: dwc: Add Root Port and Endpoint controller eDMA engine support
date: 8 months ago
config: x86_64-buildonly-randconfig-r001-20230530 (https://download.01.org/0day-ci/archive/20231019/202310190534.kkbtdHuH-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231019/202310190534.kkbtdHuH-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310190534.kkbtdHuH-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/pci/controller/dwc/pcie-designware.c: In function 'dw_pcie_edma_detect':
>> drivers/pci/controller/dwc/pcie-designware.c:898:50: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 3 [-Wformat-truncation=]
898 | snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
| ^~
In function 'dw_pcie_edma_irq_verify',
inlined from 'dw_pcie_edma_detect' at drivers/pci/controller/dwc/pcie-designware.c:949:8:
drivers/pci/controller/dwc/pcie-designware.c:898:46: note: directive argument in the range [-2147483648, 22]
898 | snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
| ^~~~~~~
drivers/pci/controller/dwc/pcie-designware.c:898:17: note: 'snprintf' output between 5 and 15 bytes into a destination of size 6
898 | snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +898 drivers/pci/controller/dwc/pcie-designware.c

878
879 static int dw_pcie_edma_irq_verify(struct dw_pcie *pci)
880 {
881 struct platform_device *pdev = to_platform_device(pci->dev);
882 u16 ch_cnt = pci->edma.ll_wr_cnt + pci->edma.ll_rd_cnt;
883 char name[6];
884 int ret;
885
886 if (pci->edma.nr_irqs == 1)
887 return 0;
888 else if (pci->edma.nr_irqs > 1)
889 return pci->edma.nr_irqs != ch_cnt ? -EINVAL : 0;
890
891 ret = platform_get_irq_byname_optional(pdev, "dma");
892 if (ret > 0) {
893 pci->edma.nr_irqs = 1;
894 return 0;
895 }
896
897 for (; pci->edma.nr_irqs < ch_cnt; pci->edma.nr_irqs++) {
> 898 snprintf(name, sizeof(name), "dma%d", pci->edma.nr_irqs);
899
900 ret = platform_get_irq_byname_optional(pdev, name);
901 if (ret <= 0)
902 return -EINVAL;
903 }
904
905 return 0;
906 }
907

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki