net/bonding: fix port id validity check on parsing
authorGaetan Rivet <grive@u256.net>
Fri, 17 Apr 2020 16:42:06 +0000 (18:42 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 8 Jan 2021 15:03:04 +0000 (16:03 +0100)
If the port_id is equal to RTE_MAX_ETHPORTS, it should be considered
invalid. Additionally, UNUSED ports are also not valid port ids to be
used afterward.

To simplify following the ethdev API rules, use the exposed function
checking whether a port id is valid.

Fixes: 2efb58cbab6e ("bond: new link bonding library")
Cc: stable@dpdk.org
Signed-off-by: Gaetan Rivet <grive@u256.net>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
drivers/net/bonding/rte_eth_bond_args.c

index abdf552..35616fb 100644 (file)
@@ -108,9 +108,8 @@ parse_port_id(const char *port_str)
                }
        }
 
-       if (port_id < 0 || port_id > RTE_MAX_ETHPORTS) {
-               RTE_BOND_LOG(ERR, "Slave port specified (%s) outside expected range",
-                               port_str);
+       if (!rte_eth_dev_is_valid_port(port_id)) {
+               RTE_BOND_LOG(ERR, "Specified port (%s) is invalid", port_str);
                return -1;
        }
        return port_id;