ethdev: keep port id unchanged if obtaining by name failed
authorIlya Maximets <i.maximets@samsung.com>
Thu, 18 May 2017 12:19:40 +0000 (15:19 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 9 Jun 2017 16:35:01 +0000 (18:35 +0200)
Currently, 'rte_eth_dev_get_port_by_name' changes transmitted
'port_id' unconditionally. This is undocumented and misleading
behaviour as user may expect unchanged value in case of error.

Otherwise, there is no sense having both return value and
a pointer in the function.

Fixes: 9c5b8d8b9feb ("ethdev: clean port id retrieval when attaching")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
lib/librte_ether/rte_ethdev.c
lib/librte_ether/rte_ethdev.h

index 83898a8..64aefdd 100644 (file)
@@ -339,7 +339,6 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id)
        if (!nb_ports)
                return -ENODEV;
 
-       *port_id = RTE_MAX_ETHPORTS;
        RTE_ETH_FOREACH_DEV(i) {
                if (!strncmp(name,
                        rte_eth_dev_data[i].name, strlen(name))) {
index 121058c..2784ad1 100644 (file)
@@ -4587,7 +4587,7 @@ rte_eth_dev_l2_tunnel_offload_set(uint8_t port_id,
 * @param port_id
 *   pointer to port identifier of the device
 * @return
-*   - (0) if successful.
+*   - (0) if successful and port_id is filled.
 *   - (-ENODEV or -EINVAL) on failure.
 */
 int