[dpdk-dev] [PATCH v4 4/4] virtio: return 1 to tell the upper layer we don't take over this device

Xie, Huawei huawei.xie at intel.com
Tue Mar 1 08:53:59 CET 2016


On 3/1/2016 3:18 PM, Thomas Monjalon wrote:
> Hi Huawei,
>
> 2016-02-26 09:53, Huawei Xie:
>> --- a/drivers/net/virtio/virtio_ethdev.c
>> +++ b/drivers/net/virtio/virtio_ethdev.c
>> @@ -1,4 +1,5 @@
>>  /*-
>> +
> This new line seems useless :)

Sorry, would fix.

>
>>   *   BSD LICENSE
>>   *
> [...]
>> @@ -1037,8 +1039,11 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>>  
>>  	pci_dev = eth_dev->pci_dev;
>>  
>> -	if (vtpci_init(pci_dev, hw) < 0)
>> -		return -1;
>> +	ret = vtpci_init(pci_dev, hw);
>> +	if (ret) {
>> +		rte_free(eth_dev->data->mac_addrs);
> The freeing seems not related to this patch.

I can send a separate patch, ok within this patchset?

>
>> +		return ret;
>> +	}
> [...]
>>  	PMD_INIT_LOG(INFO, "trying with legacy virtio pci.");
>> -	if (legacy_virtio_resource_init(dev, hw) < 0)
>> +	if (legacy_virtio_resource_init(dev, hw) < 0) {
>> +		if (dev->kdrv == RTE_KDRV_UNKNOWN) {
>> +			PMD_INIT_LOG(INFO,
>> +				"skip kernel managed virtio device.");
>> +			return 1;
>> +		}
>>  		return -1;
>> +	}
> You cannot skip a device if it was whitelisted.
> I think you should check RTE_DEVTYPE_WHITELISTED_PCI and throw an error
> in this case.

I feel there is a subtle difference on the understanding of -w args. To
me, without it, probe all devices; with it, only probe whiltelisted API.
That is all.
Do you mean that -w implies that devices whitelisted must be probed
successfully otherwise we throw an error? If i get it right, then what
about the devices whitelisted but without PMD driver?

I will fix, :).
if (dev->kdrv == RTE_KDRV_UNKNOWN && dev->devargs->type !=
RTE_DEVTYPE_WHITELISTED_PCI) {
        ....
        return 1;
}
   

>
>



More information about the dev mailing list