All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [mcgrof-next:20210427-vfio-pcie-trylock-dev 1/1] drivers/vfio/pci/vfio_pci.c:480:27: error: implicit declaration of function 'pci_dev_trylock'
Date: Fri, 18 Jun 2021 17:13:40 +0800	[thread overview]
Message-ID: <202106181732.JMwKitDk-lkp@intel.com> (raw)

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20210427-vfio-pcie-trylock-dev
head:   70d0589eb9f34237c5a891c7751802042188461f
commit: 70d0589eb9f34237c5a891c7751802042188461f [1/1] vfio: use helper to simplify try lock
config: powerpc64-randconfig-r034-20210618 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 64720f57bea6a6bf033feef4a5751ab9c0c3b401)
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 powerpc64 cross compiling tool for clang build
        # apt-get install binutils-powerpc64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git/commit/?id=70d0589eb9f34237c5a891c7751802042188461f
        git remote add mcgrof-next https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
        git fetch --no-tags mcgrof-next 20210427-vfio-pcie-trylock-dev
        git checkout 70d0589eb9f34237c5a891c7751802042188461f
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64 

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 >>):

   In file included from drivers/vfio/pci/vfio_pci.c:13:
   In file included from include/linux/device.h:15:
   In file included from include/linux/dev_printk.h:16:
   In file included from include/linux/ratelimit.h:6:
   In file included from include/linux/sched.h:12:
   In file included from arch/powerpc/include/asm/current.h:13:
   In file included from arch/powerpc/include/asm/paca.h:18:
   In file included from arch/powerpc/include/asm/mmu.h:147:
   In file included from include/linux/bug.h:5:
   In file included from arch/powerpc/include/asm/bug.h:109:
   In file included from include/asm-generic/bug.h:20:
   In file included from include/linux/kernel.h:12:
   In file included from include/linux/bitops.h:32:
   In file included from arch/powerpc/include/asm/bitops.h:62:
   arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
   #define __lwsync()      __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
           ^
   <built-in>:309:9: note: previous definition is here
   #define __lwsync __builtin_ppc_lwsync
           ^
>> drivers/vfio/pci/vfio_pci.c:480:27: error: implicit declaration of function 'pci_dev_trylock' [-Werror,-Wimplicit-function-declaration]
           if (vdev->reset_works && pci_dev_trylock(pdev)) {
                                    ^
   drivers/vfio/pci/vfio_pci.c:480:27: note: did you mean 'inode_trylock'?
   include/linux/fs.h:792:19: note: 'inode_trylock' declared here
   static inline int inode_trylock(struct inode *inode)
                     ^
>> drivers/vfio/pci/vfio_pci.c:483:3: error: implicit declaration of function 'pci_dev_unlock' [-Werror,-Wimplicit-function-declaration]
                   pci_dev_unlock(pdev);
                   ^
   drivers/vfio/pci/vfio_pci.c:483:3: note: did you mean 'pci_dev_trylock'?
   drivers/vfio/pci/vfio_pci.c:480:27: note: 'pci_dev_trylock' declared here
           if (vdev->reset_works && pci_dev_trylock(pdev)) {
                                    ^
   1 warning and 2 errors generated.


vim +/pci_dev_trylock +480 drivers/vfio/pci/vfio_pci.c

   399	
   400	static void vfio_pci_disable(struct vfio_pci_device *vdev)
   401	{
   402		struct pci_dev *pdev = vdev->pdev;
   403		struct vfio_pci_dummy_resource *dummy_res, *tmp;
   404		struct vfio_pci_ioeventfd *ioeventfd, *ioeventfd_tmp;
   405		int i, bar;
   406	
   407		/* Stop the device from further DMA */
   408		pci_clear_master(pdev);
   409	
   410		vfio_pci_set_irqs_ioctl(vdev, VFIO_IRQ_SET_DATA_NONE |
   411					VFIO_IRQ_SET_ACTION_TRIGGER,
   412					vdev->irq_type, 0, 0, NULL);
   413	
   414		/* Device closed, don't need mutex here */
   415		list_for_each_entry_safe(ioeventfd, ioeventfd_tmp,
   416					 &vdev->ioeventfds_list, next) {
   417			vfio_virqfd_disable(&ioeventfd->virqfd);
   418			list_del(&ioeventfd->next);
   419			kfree(ioeventfd);
   420		}
   421		vdev->ioeventfds_nr = 0;
   422	
   423		vdev->virq_disabled = false;
   424	
   425		for (i = 0; i < vdev->num_regions; i++)
   426			vdev->region[i].ops->release(vdev, &vdev->region[i]);
   427	
   428		vdev->num_regions = 0;
   429		kfree(vdev->region);
   430		vdev->region = NULL; /* don't krealloc a freed pointer */
   431	
   432		vfio_config_free(vdev);
   433	
   434		for (i = 0; i < PCI_STD_NUM_BARS; i++) {
   435			bar = i + PCI_STD_RESOURCES;
   436			if (!vdev->barmap[bar])
   437				continue;
   438			pci_iounmap(pdev, vdev->barmap[bar]);
   439			pci_release_selected_regions(pdev, 1 << bar);
   440			vdev->barmap[bar] = NULL;
   441		}
   442	
   443		list_for_each_entry_safe(dummy_res, tmp,
   444					 &vdev->dummy_resources_list, res_next) {
   445			list_del(&dummy_res->res_next);
   446			release_resource(&dummy_res->resource);
   447			kfree(dummy_res);
   448		}
   449	
   450		vdev->needs_reset = true;
   451	
   452		/*
   453		 * If we have saved state, restore it.  If we can reset the device,
   454		 * even better.  Resetting with current state seems better than
   455		 * nothing, but saving and restoring current state without reset
   456		 * is just busy work.
   457		 */
   458		if (pci_load_and_free_saved_state(pdev, &vdev->pci_saved_state)) {
   459			pci_info(pdev, "%s: Couldn't reload saved state\n", __func__);
   460	
   461			if (!vdev->reset_works)
   462				goto out;
   463	
   464			pci_save_state(pdev);
   465		}
   466	
   467		/*
   468		 * Disable INTx and MSI, presumably to avoid spurious interrupts
   469		 * during reset.  Stolen from pci_reset_function()
   470		 */
   471		pci_write_config_word(pdev, PCI_COMMAND, PCI_COMMAND_INTX_DISABLE);
   472	
   473		/*
   474		 * Try to get the locks ourselves to prevent a deadlock. The
   475		 * success of this is dependent on being able to lock the device,
   476		 * which is not always possible.
   477		 * We can not use the "try" reset interface here, which will
   478		 * overwrite the previously restored configuration information.
   479		 */
 > 480		if (vdev->reset_works && pci_dev_trylock(pdev)) {
   481			if (!__pci_reset_function_locked(pdev))
   482				vdev->needs_reset = false;
 > 483			pci_dev_unlock(pdev);
   484		}
   485	
   486		pci_restore_state(pdev);
   487	out:
   488		pci_disable_device(pdev);
   489	
   490		vfio_pci_try_bus_reset(vdev);
   491	
   492		if (!disable_idle_d3)
   493			vfio_pci_set_power_state(vdev, PCI_D3hot);
   494	}
   495	

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

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

                 reply	other threads:[~2021-06-18  9:13 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202106181732.JMwKitDk-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.