Hi Frank,

kernel test robot noticed the following build errors:

[auto build test ERROR on 00f3246adeeacbda0bd0b303604e46eb59c32e6e]

url:    
https://github.com/intel-lab-lkp/linux/commits/Frank-Li/platform-msi-Add-msi_remove_device_irq_domain-in-platform_device_msi_free_irqs_all/20250208-034445
base:   00f3246adeeacbda0bd0b303604e46eb59c32e6e
patch link:    
https://lore.kernel.org/r/20250207-ep-msi-v14-7-9671b136f2b8%40nxp.com
patch subject: [PATCH v14 07/15] PCI: endpoint: pci-ep-msi: Add MSI 
address/data pair mutable check
config: i386-buildonly-randconfig-003-20250208 
(https://download.01.org/0day-ci/archive/20250208/202502082242.poq1hb1d-...@intel.com/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/20250208/202502082242.poq1hb1d-...@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 <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202502082242.poq1hb1d-...@intel.com/

All errors (new ones prefixed by >>):

   drivers/pci/endpoint/pci-ep-msi.c: In function 'pci_epf_alloc_doorbell':
>> drivers/pci/endpoint/pci-ep-msi.c:49:14: error: implicit declaration of 
>> function 'irq_domain_is_msi_immutable'; did you mean 
>> 'irq_domain_is_msi_device'? [-Werror=implicit-function-declaration]
      49 |         if (!irq_domain_is_msi_immutable(dom)) {
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
         |              irq_domain_is_msi_device
   drivers/pci/endpoint/pci-ep-msi.c:61:15: error: implicit declaration of 
function 'platform_device_msi_init_and_alloc_irqs' 
[-Werror=implicit-function-declaration]
      61 |         ret = platform_device_msi_init_and_alloc_irqs(&epf->dev, 
num_db, pci_epf_write_msi_msg);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/endpoint/pci-ep-msi.c: In function 'pci_epf_free_doorbell':
   drivers/pci/endpoint/pci-ep-msi.c:83:9: error: implicit declaration of 
function 'platform_device_msi_free_irqs_all' 
[-Werror=implicit-function-declaration]
      83 |         platform_device_msi_free_irqs_all(&epf->dev);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +49 drivers/pci/endpoint/pci-ep-msi.c

    26  
    27  int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_db)
    28  {
    29          struct pci_epc *epc = epf->epc;
    30          struct device *dev = &epf->dev;
    31          struct irq_domain *dom;
    32          void *msg;
    33          u32 rid;
    34          int ret;
    35          int i;
    36  
    37          rid = PCI_EPF_DEVID(epf->func_no, epf->vfunc_no);
    38          dom = of_msi_map_get_device_domain(epc->dev.parent, rid, 
DOMAIN_BUS_PLATFORM_MSI);
    39          if (!dom) {
    40                  dev_err(dev, "Can't find msi domain\n");
    41                  return -EINVAL;
    42          }
    43  
    44          dev_set_msi_domain(dev, dom);
    45  
    46          if (!irq_domain_is_msi_parent(dom))
    47                  return -EINVAL;
    48  
  > 49          if (!irq_domain_is_msi_immutable(dom)) {
    50                  dev_err(dev, "Can't support mutable address/data pair 
MSI controller\n");
    51                  return -EINVAL;
    52          }
    53  
    54          msg = kcalloc(num_db, sizeof(struct pci_epf_doorbell_msg), 
GFP_KERNEL);
    55          if (!msg)
    56                  return -ENOMEM;
    57  
    58          epf->num_db = num_db;
    59          epf->db_msg = msg;
    60  
    61          ret = platform_device_msi_init_and_alloc_irqs(&epf->dev, 
num_db, pci_epf_write_msi_msg);
    62          if (ret) {
    63                  /*
    64                   * The pcie_ep DT node has to specify 'msi-parent' for 
EP
    65                   * doorbell support to work. Right now only GIC ITS is
    66                   * supported. If you have GIC ITS and reached this 
print,
    67                   * perhaps you are missing 'msi-map' in DT.
    68                   */
    69                  dev_err(dev, "Failed to allocate MSI\n");
    70                  kfree(msg);
    71                  return -ENOMEM;
    72          }
    73  
    74          for (i = 0; i < num_db; i++)
    75                  epf->db_msg[i].virq = msi_get_virq(dev, i);
    76  
    77          return ret;
    78  }
    79  EXPORT_SYMBOL_GPL(pci_epf_alloc_doorbell);
    80  

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

Reply via email to