Re: [PATCH 2/3] vmd: disable MSI remapping bypass under Xen

kernel test robot
2025-01-12T02:58:14Z

Hi Roger,

kernel test robot noticed the following build errors:

[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus tip/irq/core linus/master v6.13-rc6 next-20250110]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Roger-Pau-Monne/xen-pci-do-not-register-devices-outside-of-PCI-segment-scope/20250110-220331
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/20250110140152.27624-3-roger.pau%40citrix.com
patch subject: [PATCH 2/3] vmd: disable MSI remapping bypass under Xen
config: x86_64-buildonly-randconfig-001-20250112 (https://download.01.org/0day-ci/archive/20250112/202501121029.dJk0TBPr-lkp@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/20250112/202501121029.dJk0TBPr-lkp@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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501121029.dJk0TBPr-lkp@intel.com/

All errors (new ones prefixed by >>):

drivers/pci/controller/vmd.c: In function 'vmd_probe':
>> drivers/pci/controller/vmd.c:973:13: error: implicit declaration of function 'xen_domain' [-Werror=implicit-function-declaration]
973 | if (xen_domain())
| ^~~~~~~~~~
cc1: some warnings being treated as errors

vim +/xen_domain +973 drivers/pci/controller/vmd.c

966
967 static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id)
968 {
969 unsigned long features = (unsigned long) id->driver_data;
970 struct vmd_dev *vmd;
971 int err;
972
> 973 if (xen_domain())
974 /*
975 * Xen doesn't have knowledge about devices in the VMD bus.
976 * Bypass of MSI remapping won't work in that case as direct
977 * write to the MSI entries won't result in functional
978 * interrupts.
979 */
980 features &= ~VMD_FEAT_CAN_BYPASS_MSI_REMAP;
981
982 if (resource_size(&dev->resource[VMD_CFGBAR]) < (1 << 20))
983 return -ENOMEM;
984
985 vmd = devm_kzalloc(&dev->dev, sizeof(*vmd), GFP_KERNEL);
986 if (!vmd)
987 return -ENOMEM;
988
989 vmd->dev = dev;
990 vmd->instance = ida_alloc(&vmd_instance_ida, GFP_KERNEL);
991 if (vmd->instance < 0)
992 return vmd->instance;
993
994 vmd->name = devm_kasprintf(&dev->dev, GFP_KERNEL, "vmd%d",
995 vmd->instance);
996 if (!vmd->name) {
997 err = -ENOMEM;
998 goto out_release_instance;
999 }
1000
1001 err = pcim_enable_device(dev);
1002 if (err < 0)
1003 goto out_release_instance;
1004
1005 vmd->cfgbar = pcim_iomap(dev, VMD_CFGBAR, 0);
1006 if (!vmd->cfgbar) {
1007 err = -ENOMEM;
1008 goto out_release_instance;
1009 }
1010
1011 pci_set_master(dev);
1012 if (dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64)) &&
1013 dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(32))) {
1014 err = -ENODEV;
1015 goto out_release_instance;
1016 }
1017
1018 if (features & VMD_FEAT_OFFSET_FIRST_VECTOR)
1019 vmd->first_vec = 1;
1020
1021 spin_lock_init(&vmd->cfg_lock);
1022 pci_set_drvdata(dev, vmd);
1023 err = vmd_enable_domain(vmd, features);
1024 if (err)
1025 goto out_release_instance;
1026
1027 dev_info(&vmd->dev->dev, "Bound to PCI domain %04x\n",
1028 vmd->sysdata.domain);
1029 return 0;
1030
1031 out_release_instance:
1032 ida_free(&vmd_instance_ida, vmd->instance);
1033 return err;
1034 }
1035

--
0-DAY CI Kernel Test Service