linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [meghadey-crypto:d_msix_one 6/8] kernel/irq/msi.c:122:13: error: implicit declaration of function 'pci_msix_vec_count'
@ 2021-09-17  2:57 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-17  2:57 UTC (permalink / raw)
  To: Megha Dey; +Cc: llvm, kbuild-all, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 4910 bytes --]

tree:   https://github.com/meghadey/crypto d_msix_one
head:   4be770bef76cb82a55b8a326633ff21445005359
commit: 674fc64a4f0d8a565823bd33307800c1494c4e1c [6/8] PCI/MSI: Enable dynamic allocation of MSI-X vectors
config: arm64-randconfig-r006-20210916 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c8b3d7d6d6de37af68b2f379d0e37304f78e115f)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # https://github.com/meghadey/crypto/commit/674fc64a4f0d8a565823bd33307800c1494c4e1c
        git remote add meghadey-crypto https://github.com/meghadey/crypto
        git fetch --no-tags meghadey-crypto d_msix_one
        git checkout 674fc64a4f0d8a565823bd33307800c1494c4e1c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> kernel/irq/msi.c:122:13: error: implicit declaration of function 'pci_msix_vec_count' [-Werror,-Wimplicit-function-declaration]
                   num_msi = pci_msix_vec_count(to_pci_dev(dev));
                             ^
   1 error generated.


vim +/pci_msix_vec_count +122 kernel/irq/msi.c

    96	
    97	/**
    98	 * msi_populate_sysfs - Populate msi_irqs sysfs entries for devices
    99	 * @dev:	The device(PCI, platform etc) who will get sysfs entries
   100	 *
   101	 * Return attribute_group ** so that specific bus MSI can save it to
   102	 * somewhere during initilizing msi irqs. If devices has no MSI irq,
   103	 * return NULL; if it fails to populate sysfs, return ERR_PTR
   104	 */
   105	const struct attribute_group **msi_populate_sysfs(struct device *dev)
   106	{
   107		const struct attribute_group **msi_irq_groups;
   108		struct attribute **msi_attrs, *msi_attr;
   109		struct device_attribute *msi_dev_attr;
   110		struct attribute_group *msi_irq_group;
   111		struct msi_desc *entry;
   112		int ret = -ENOMEM;
   113		int num_msi = 0;
   114		int count = 0;
   115		int i;
   116	
   117		entry = first_msi_entry(dev);
   118		if (IS_ENABLED(CONFIG_PCI) && IS_ENABLED(CONFIG_PCI_MSI) && entry->msi_attrib.is_msix) {
   119			/* Since msi-x vectors can be allocated multiple times,
   120			 * allocate maximum no. of vectors supported by the device
   121			 */
 > 122			num_msi = pci_msix_vec_count(to_pci_dev(dev));
   123		} else {
   124			/* Determine how many msi entries we have */
   125			for_each_msi_entry(entry, dev)
   126				num_msi += entry->nvec_used;
   127		}
   128	
   129		if (!num_msi)
   130			return NULL;
   131	
   132		/* Dynamically create the MSI attributes for the device */
   133		msi_attrs = kcalloc(num_msi + 1, sizeof(void *), GFP_KERNEL);
   134		if (!msi_attrs)
   135			return ERR_PTR(-ENOMEM);
   136	
   137		for_each_msi_entry(entry, dev) {
   138			for (i = 0; i < entry->nvec_used; i++) {
   139				msi_dev_attr = kzalloc(sizeof(*msi_dev_attr), GFP_KERNEL);
   140				if (!msi_dev_attr)
   141					goto error_attrs;
   142				msi_attrs[count] = &msi_dev_attr->attr;
   143	
   144				sysfs_attr_init(&msi_dev_attr->attr);
   145				msi_dev_attr->attr.name = kasprintf(GFP_KERNEL, "%d",
   146								    entry->irq + i);
   147				if (!msi_dev_attr->attr.name)
   148					goto error_attrs;
   149				msi_dev_attr->attr.mode = 0444;
   150				msi_dev_attr->show = msi_mode_show;
   151				++count;
   152			}
   153		}
   154	
   155		msi_irq_group = kzalloc(sizeof(*msi_irq_group), GFP_KERNEL);
   156		if (!msi_irq_group)
   157			goto error_attrs;
   158		msi_irq_group->name = "msi_irqs";
   159		msi_irq_group->attrs = msi_attrs;
   160	
   161		msi_irq_groups = kcalloc(2, sizeof(void *), GFP_KERNEL);
   162		if (!msi_irq_groups)
   163			goto error_irq_group;
   164		msi_irq_groups[0] = msi_irq_group;
   165	
   166		ret = sysfs_create_groups(&dev->kobj, msi_irq_groups);
   167		if (ret)
   168			goto error_irq_groups;
   169	
   170		return msi_irq_groups;
   171	
   172	error_irq_groups:
   173		kfree(msi_irq_groups);
   174	error_irq_group:
   175		kfree(msi_irq_group);
   176	error_attrs:
   177		count = 0;
   178		msi_attr = msi_attrs[count];
   179		while (msi_attr) {
   180			msi_dev_attr = container_of(msi_attr, struct device_attribute, attr);
   181			kfree(msi_attr->name);
   182			kfree(msi_dev_attr);
   183			++count;
   184			msi_attr = msi_attrs[count];
   185		}
   186		kfree(msi_attrs);
   187		return ERR_PTR(ret);
   188	}
   189	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35226 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-17  2:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-17  2:57 [meghadey-crypto:d_msix_one 6/8] kernel/irq/msi.c:122:13: error: implicit declaration of function 'pci_msix_vec_count' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).