Hi Alexander, Thank you for the patch! Yet something to improve: [auto build test ERROR on pci/next] [also build test ERROR on v4.16-rc4 next-20180305] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Alexander-Duyck/pci-iov-Add-support-for-unmanaged-SR-IOV/20180306-063954 base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next config: s390-default_defconfig (attached as .config) compiler: s390x-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=s390 All errors (new ones prefixed by >>): drivers/vfio/pci/vfio_pci.c: In function 'vfio_pci_sriov_configure': >> drivers/vfio/pci/vfio_pci.c:1291:8: error: implicit declaration of function 'pci_sriov_configure_unmanaged'; did you mean 'pci_write_config_dword'? [-Werror=implicit-function-declaration] err = pci_sriov_configure_unmanaged(pdev, nr_virtfn); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pci_write_config_dword At top level: drivers/vfio/pci/vfio_pci.c:1265:12: warning: 'vfio_pci_sriov_configure' defined but not used [-Wunused-function] static int vfio_pci_sriov_configure(struct pci_dev *pdev, int nr_virtfn) ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1291 drivers/vfio/pci/vfio_pci.c 1264 1265 static int vfio_pci_sriov_configure(struct pci_dev *pdev, int nr_virtfn) 1266 { 1267 struct vfio_pci_device *vdev; 1268 struct vfio_device *device; 1269 int err; 1270 1271 device = vfio_device_get_from_dev(&pdev->dev); 1272 if (device == NULL) 1273 return -ENODEV; 1274 1275 vdev = vfio_device_data(device); 1276 if (vdev == NULL) { 1277 vfio_device_put(device); 1278 return -ENODEV; 1279 } 1280 1281 /* 1282 * If a userspace process is already using this device just return 1283 * busy and don't allow for any changes. 1284 */ 1285 if (vdev->refcnt) { 1286 pci_warn(pdev, 1287 "PF is currently in use, blocked until released by user\n"); 1288 return -EBUSY; 1289 } 1290 > 1291 err = pci_sriov_configure_unmanaged(pdev, nr_virtfn); 1292 if (err <= 0) 1293 return err; 1294 1295 /* 1296 * We are now leaving VFs in the control of some unknown PF entity. 1297 * 1298 * Best case is a well behaved userspace PF is expected and any VMs 1299 * that the VFs will be assigned to are dependent on the userspace 1300 * entity anyway. An example being NFV where maybe the PF is acting 1301 * as an accelerated interface for a firewall or switch. 1302 * 1303 * Worst case is somebody really messed up and just enabled SR-IOV 1304 * on a device they were planning to assign to a VM somwhere. 1305 * 1306 * In either case it is probably best for us to set the taint flag 1307 * and warn the user since this could get really ugly really quick 1308 * if this wasn't what they were planning to do. 1309 */ 1310 add_taint(TAINT_USER, LOCKDEP_STILL_OK); 1311 pci_warn(pdev, 1312 "Adding kernel taint for vfio-pci now managing SR-IOV PF device\n"); 1313 1314 return nr_virtfn; 1315 } 1316 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation