Re: [vfio:next 19/27] drivers/vfio/fsl-mc/vfio_fsl_mc.c:189:36: error: 'FSL_MC_REGION_CACHEABLE' undeclared

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I was surprised as well that vfio_fsl_mc is compiled on X86, but it seems that at the time when the FSL_MC_BUS was upstreamed it was a request to have it compilable on multiple platforms (just not to brake builds).

The errors bellow are caused by the missing FSL_MC_BUS patches, however I have tried myself to compile the i386 build and I did encounter an issue with 32 bit platforms. I have sent a fix for it.

Diana


On 10/13/2020 1:21 AM, Alex Williamson wrote:

While I'm a little surprise to see an i386 build pulling in
vfio_fsl_mc, I see that CONFIG_FSL_MC_BUS does enable compile testing
on various other archs.  I assume therefore that this is just the lack
of the necessary fsl-bus series to enable the vfio_fsl_mc driver.
Both should be present in the next linux-next tree and I'm aware to
send my pull request after GregKH's to get the ordering of these
correct in mainline.  Please let me know if there are any other
concerns from anyone.  Thanks,

Alex


On Tue, 13 Oct 2020 05:59:09 +0800
kernel test robot <lkp@xxxxxxxxx> wrote:

tree:   https://github.com/awilliam/linux-vfio.git next
head:   2099363255f123f6c9abcfa8531bbec65a8f1820
commit: 67247289688d49a610a956c23c4ff032f0281845 [19/27] vfio/fsl-mc: Allow userspace to MMAP fsl-mc device MMIO regions
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
         # https://github.com/awilliam/linux-vfio/commit/67247289688d49a610a956c23c4ff032f0281845
         git remote add vfio https://github.com/awilliam/linux-vfio.git
         git fetch --no-tags vfio next
         git checkout 67247289688d49a610a956c23c4ff032f0281845
         # save the attached .config to linux build tree
         make W=1 ARCH=i386

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

All errors (new ones prefixed by >>):

    drivers/vfio/fsl-mc/vfio_fsl_mc.c: In function 'vfio_fsl_mc_mmap_mmio':
drivers/vfio/fsl-mc/vfio_fsl_mc.c:189:36: error: 'FSL_MC_REGION_CACHEABLE' undeclared (first use in this function)
      189 |  region_cacheable = (region.type & FSL_MC_REGION_CACHEABLE) &&
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:189:36: note: each undeclared identifier is reported only once for each function it appears in
drivers/vfio/fsl-mc/vfio_fsl_mc.c:190:22: error: 'FSL_MC_REGION_SHAREABLE' undeclared (first use in this function)
      190 |       (region.type & FSL_MC_REGION_SHAREABLE);
          |                      ^~~~~~~~~~~~~~~~~~~~~~~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c: In function 'vfio_fsl_mc_bus_notifier':
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:256:9: error: 'struct fsl_mc_device' has no member named 'driver_override'
      256 |   mc_dev->driver_override = kasprintf(GFP_KERNEL, "%s",
          |         ^~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:258:14: error: 'struct fsl_mc_device' has no member named 'driver_override'
      258 |   if (!mc_dev->driver_override)
          |              ^~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c: In function 'vfio_fsl_mc_init_device':
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:295:8: error: implicit declaration of function 'dprc_setup' [-Werror=implicit-function-declaration]
      295 |  ret = dprc_setup(mc_dev);
          |        ^~~~~~~~~~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:301:8: error: implicit declaration of function 'dprc_scan_container' [-Werror=implicit-function-declaration]
      301 |  ret = dprc_scan_container(mc_dev, false);
          |        ^~~~~~~~~~~~~~~~~~~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:310:2: error: implicit declaration of function 'dprc_remove_devices' [-Werror=implicit-function-declaration]
      310 |  dprc_remove_devices(mc_dev, NULL, 0);
          |  ^~~~~~~~~~~~~~~~~~~
    drivers/vfio/fsl-mc/vfio_fsl_mc.c:311:2: error: implicit declaration of function 'dprc_cleanup' [-Werror=implicit-function-declaration]
      311 |  dprc_cleanup(mc_dev);
          |  ^~~~~~~~~~~~
    cc1: some warnings being treated as errors

vim +/FSL_MC_REGION_CACHEABLE +189 drivers/vfio/fsl-mc/vfio_fsl_mc.c

    174	
    175	static int vfio_fsl_mc_mmap_mmio(struct vfio_fsl_mc_region region,
    176					 struct vm_area_struct *vma)
    177	{
    178		u64 size = vma->vm_end - vma->vm_start;
    179		u64 pgoff, base;
    180		u8 region_cacheable;
    181	
    182		pgoff = vma->vm_pgoff &
    183			((1U << (VFIO_FSL_MC_OFFSET_SHIFT - PAGE_SHIFT)) - 1);
    184		base = pgoff << PAGE_SHIFT;
    185	
    186		if (region.size < PAGE_SIZE || base + size > region.size)
    187			return -EINVAL;
    188	
  > 189		region_cacheable = (region.type & FSL_MC_REGION_CACHEABLE) &&
  > 190				   (region.type & FSL_MC_REGION_SHAREABLE);
    191		if (!region_cacheable)
    192			vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
    193	
    194		vma->vm_pgoff = (region.addr >> PAGE_SHIFT) + pgoff;
    195	
    196		return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
    197				       size, vma->vm_page_prot);
    198	}
    199	

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





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux