Hello Ferruh, > 4 ???. 2016 ?., ? 14:33, Ferruh Yigit <ferruh.yigit at intel.com> ???????(?): > > Hi Igor, > > On 8/3/2016 5:58 PM, Igor Ryzhov wrote: >> 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. > > You are right, and I did able to reproduce this issue with virtio as you > suggest. > > But I wonder why rte_eth_dev_get_port_by_addr() is not catching this. > Perhaps a dev->attached check needs to be added into this function. > >> >> I think it should be: >> ret = pci_probe_all_drivers(dev); >> if (ret) >> goto err_return; >> return 0; > > Your proposal looks good to me. Will you send a patch?
Patch sent. > >> Best regards, >> Igor >> >