[dpdk-dev] rte_eth_dev_attach returns 0, although device is not attached
Ferruh Yigit
ferruh.yigit at intel.com
Thu Aug 4 13:33:40 CEST 2016
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?
> Best regards,
> Igor
>
More information about the dev
mailing list