[dpdk-dev] [PATCH v3] net/tap: fix dev name look-up

Ferruh Yigit ferruh.yigit at intel.com
Mon Mar 6 17:02:43 CET 2017


On 3/6/2017 3:55 PM, Pascal Mazon wrote:
> On Mon, 6 Mar 2017 15:41:14 +0000
> Ferruh Yigit <ferruh.yigit at intel.com> wrote:
> 
>> On 3/6/2017 3:13 PM, Pascal Mazon wrote:
>>> Store the device name in dev->data->name, to have symmetrical
>>> behavior between rte_pmd_tap_probe(name) and
>>> rte_pmd_tap_remove(name).
>>>
>>> The netdevice name (linux interface name) is stored in the name
>>> field of struct pmd_internals.
>>>
>>> snprintf(data->name) has been moved closer to the
>>> rte_ethdev_allocate() as it should use the same name.
>>>
>>> Signed-off-by: Pascal Mazon <pascal.mazon at 6wind.com>
>>> ---
>>>  drivers/net/tap/rte_eth_tap.c | 5 +++--
>>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/net/tap/rte_eth_tap.c
>>> b/drivers/net/tap/rte_eth_tap.c index 47a706070652..ece3a5fcc897
>>> 100644 --- a/drivers/net/tap/rte_eth_tap.c
>>> +++ b/drivers/net/tap/rte_eth_tap.c
>>> @@ -663,7 +663,9 @@ eth_dev_tap_create(const char *name, char
>>> *tap_name) goto error_exit;
>>>  	}
>>>  
>>> -	dev = rte_eth_dev_allocate(tap_name);
>>> +	/* name in allocation and data->name must be consistent */
>>> +	snprintf(data->name, sizeof(data->name), "%s", name);
>>
>> When you use correct name (name) for rte_eth_dev_allocate(),
>> snprintf() no more required. rte_eth_dev_allocate() already does it
>> [1].
>>
>> [1]
>> http://dpdk.org/browse/dpdk/tree/lib/librte_ether/rte_ethdev.c#n230
>>
> 
> I disagree here. What rte_eth_dev_allocate() changes, is the shared
> automatically-allocated data part, as mentioned in your earlier mail.
> We didn't yet pass our own manually allocated data to dev.
> 
> Do you see what I mean?

Yes I do, you are right, so this looks good.

> 
> Best regards,
> Pascal
> 
>>> +	dev = rte_eth_dev_allocate(name);
>>>  	if (!dev) {
>>>  		RTE_LOG(ERR, PMD, "TAP Unable to allocate device
>>> struct\n"); goto error_exit;
>>> @@ -691,7 +693,6 @@ eth_dev_tap_create(const char *name, char
>>> *tap_name) dev->driver = NULL;
>>>  	dev->rx_pkt_burst = pmd_rx_burst;
>>>  	dev->tx_pkt_burst = pmd_tx_burst;
>>> -	snprintf(dev->data->name, sizeof(dev->data->name), "%s",
>>> name); 
>>>  	/* Presetup the fds to -1 as being not valid */
>>>  	for (i = 0; i < RTE_PMD_TAP_MAX_QUEUES; i++) {
>>>
>>
> 



More information about the dev mailing list