[dpdk-dev] rte_eth_dev_attach returns 0, although device is not attached
Igor Ryzhov
iryzhov at nfware.com
Thu Aug 4 13:51:35 CEST 2016
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
>>
>
More information about the dev
mailing list