Hello. Function rte_eth_dev_attach can return false positive result. It happens because rte_eal_pci_probe_one returns zero if no driver is found for the device: ret = pci_probe_all_drivers(dev); if (ret < 0) goto err_return; return 0; (pci_probe_all_drivers returns 1 in that case)
For example, it can be easily reproduced by trying to attach virtio device, managed by kernel driver. I think it should be: ret = pci_probe_all_drivers(dev); if (ret) goto err_return; return 0; Best regards, Igor