Hi James,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on v5.4-rc8]
[also build test WARNING on next-20191206]
[cannot apply to pci/next]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/James-Sewart/PCI-Fix-off-by-one-in-dma_alias_mask-allocation-size/20191204-034421
base:    af42d3466bdc8f39806b26f593604fdc54140bcb
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-91-g817270f-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/iommu/amd_iommu.c:288:34: sparse: sparse: not enough arguments for 
>> function pci_add_dma_alias

vim +288 drivers/iommu/amd_iommu.c

e3156048346c28 Joerg Roedel   2016-04-08  234  
e3156048346c28 Joerg Roedel   2016-04-08  235  static u16 get_alias(struct 
device *dev)
e3156048346c28 Joerg Roedel   2016-04-08  236  {
e3156048346c28 Joerg Roedel   2016-04-08  237   struct pci_dev *pdev = 
to_pci_dev(dev);
e3156048346c28 Joerg Roedel   2016-04-08  238   u16 devid, ivrs_alias, 
pci_alias;
e3156048346c28 Joerg Roedel   2016-04-08  239  
6c0b43df74f900 Joerg Roedel   2016-05-09  240   /* The callers make sure that 
get_device_id() does not fail here */
e3156048346c28 Joerg Roedel   2016-04-08  241   devid = get_device_id(dev);
5ebb1bc2d63d90 Arindam Nath   2018-09-18  242  
5ebb1bc2d63d90 Arindam Nath   2018-09-18  243   /* For ACPI HID devices, we 
simply return the devid as such */
5ebb1bc2d63d90 Arindam Nath   2018-09-18  244   if (!dev_is_pci(dev))
5ebb1bc2d63d90 Arindam Nath   2018-09-18  245           return devid;
5ebb1bc2d63d90 Arindam Nath   2018-09-18  246  
e3156048346c28 Joerg Roedel   2016-04-08  247   ivrs_alias = 
amd_iommu_alias_table[devid];
5ebb1bc2d63d90 Arindam Nath   2018-09-18  248  
e3156048346c28 Joerg Roedel   2016-04-08  249   pci_for_each_dma_alias(pdev, 
__last_alias, &pci_alias);
e3156048346c28 Joerg Roedel   2016-04-08  250  
e3156048346c28 Joerg Roedel   2016-04-08  251   if (ivrs_alias == pci_alias)
e3156048346c28 Joerg Roedel   2016-04-08  252           return ivrs_alias;
e3156048346c28 Joerg Roedel   2016-04-08  253  
e3156048346c28 Joerg Roedel   2016-04-08  254   /*
e3156048346c28 Joerg Roedel   2016-04-08  255    * DMA alias showdown
e3156048346c28 Joerg Roedel   2016-04-08  256    *
e3156048346c28 Joerg Roedel   2016-04-08  257    * The IVRS is fairly reliable 
in telling us about aliases, but it
e3156048346c28 Joerg Roedel   2016-04-08  258    * can't know about every 
screwy device.  If we don't have an IVRS
e3156048346c28 Joerg Roedel   2016-04-08  259    * reported alias, use the PCI 
reported alias.  In that case we may
e3156048346c28 Joerg Roedel   2016-04-08  260    * still need to initialize the 
rlookup and dev_table entries if the
e3156048346c28 Joerg Roedel   2016-04-08  261    * alias is to a non-existent 
device.
e3156048346c28 Joerg Roedel   2016-04-08  262    */
e3156048346c28 Joerg Roedel   2016-04-08  263   if (ivrs_alias == devid) {
e3156048346c28 Joerg Roedel   2016-04-08  264           if 
(!amd_iommu_rlookup_table[pci_alias]) {
e3156048346c28 Joerg Roedel   2016-04-08  265                   
amd_iommu_rlookup_table[pci_alias] =
e3156048346c28 Joerg Roedel   2016-04-08  266                           
amd_iommu_rlookup_table[devid];
e3156048346c28 Joerg Roedel   2016-04-08  267                   
memcpy(amd_iommu_dev_table[pci_alias].data,
e3156048346c28 Joerg Roedel   2016-04-08  268                          
amd_iommu_dev_table[devid].data,
e3156048346c28 Joerg Roedel   2016-04-08  269                          
sizeof(amd_iommu_dev_table[pci_alias].data));
e3156048346c28 Joerg Roedel   2016-04-08  270           }
e3156048346c28 Joerg Roedel   2016-04-08  271  
e3156048346c28 Joerg Roedel   2016-04-08  272           return pci_alias;
e3156048346c28 Joerg Roedel   2016-04-08  273   }
e3156048346c28 Joerg Roedel   2016-04-08  274  
5f226da1b1d706 Bjorn Helgaas  2019-02-08  275   pci_info(pdev, "Using IVRS 
reported alias %02x:%02x.%d "
5f226da1b1d706 Bjorn Helgaas  2019-02-08  276           "for device 
[%04x:%04x], kernel reported alias "
e3156048346c28 Joerg Roedel   2016-04-08  277           "%02x:%02x.%d\n", 
PCI_BUS_NUM(ivrs_alias), PCI_SLOT(ivrs_alias),
5f226da1b1d706 Bjorn Helgaas  2019-02-08  278           PCI_FUNC(ivrs_alias), 
pdev->vendor, pdev->device,
e3156048346c28 Joerg Roedel   2016-04-08  279           PCI_BUS_NUM(pci_alias), 
PCI_SLOT(pci_alias),
e3156048346c28 Joerg Roedel   2016-04-08  280           PCI_FUNC(pci_alias));
e3156048346c28 Joerg Roedel   2016-04-08  281  
e3156048346c28 Joerg Roedel   2016-04-08  282   /*
e3156048346c28 Joerg Roedel   2016-04-08  283    * If we don't have a PCI DMA 
alias and the IVRS alias is on the same
e3156048346c28 Joerg Roedel   2016-04-08  284    * bus, then the IVRS table may 
know about a quirk that we don't.
e3156048346c28 Joerg Roedel   2016-04-08  285    */
e3156048346c28 Joerg Roedel   2016-04-08  286   if (pci_alias == devid &&
e3156048346c28 Joerg Roedel   2016-04-08  287       PCI_BUS_NUM(ivrs_alias) == 
pdev->bus->number) {
7afd16f882887c Linus Torvalds 2016-05-19 @288           pci_add_dma_alias(pdev, 
ivrs_alias & 0xff);
5f226da1b1d706 Bjorn Helgaas  2019-02-08  289           pci_info(pdev, "Added 
PCI DMA alias %02x.%d\n",
5f226da1b1d706 Bjorn Helgaas  2019-02-08  290                   
PCI_SLOT(ivrs_alias), PCI_FUNC(ivrs_alias));
e3156048346c28 Joerg Roedel   2016-04-08  291   }
e3156048346c28 Joerg Roedel   2016-04-08  292  
e3156048346c28 Joerg Roedel   2016-04-08  293   return ivrs_alias;
e3156048346c28 Joerg Roedel   2016-04-08  294  }
e3156048346c28 Joerg Roedel   2016-04-08  295  

:::::: The code at line 288 was first introduced by commit
:::::: 7afd16f882887c9adc69cd1794f5e57777723217 Merge tag 'pci-v4.7-changes' of 
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

:::::: TO: Linus Torvalds <torva...@linux-foundation.org>
:::::: CC: Linus Torvalds <torva...@linux-foundation.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to